6

追加機能で認証方法を強化する方法を見つけようとしています。

例えば

  • パスワードの有効期限が切れています
  • 特別なパスワード形式
  • 長さの要件
  • 等...

サイトのフロントエンドにとっては非常に簡単ですが、管理パネルについてはどうでしょうか。


authenticateはおそらくそこにあるので、User'sManagerオブジェクトをオーバーライドする必要があると思います。これは私が思うに理解するのはかなり難しいものです。

前もって感謝します!:)

4

2 に答える 2

6

http://docs.djangoproject.com/en/dev/topics/auth/#authentication-backendsの手順に従って、カスタム認証バックエンドを作成できます。authenticate基本的に、メソッドを持つバックエンド クラスを作成します。

class MyBackend:
    def authenticate(self, username=None, password=None):
        # Check the username/password and return a User.

AUTHENTICATION_BACKENDS次に、クラスをin に追加しsettings.pyます。

これは認証のためのものですが、たとえば、パスワードが正しいが有効期限が切れている場合は、ユーザーをパスワード変更ページにリダイレクトするだけで、言及したすべてのパスワード検証を行うことができます。メッセージング フレームワークを使用して、一般的なパスワード変更ページに誘導するときに何が起こっているかについてのヒントをユーザーに与えることを検討してください。

于 2010-11-16T19:42:34.130 に答える
0

パスワードの検証をモデルに組み込みたい場合は、おそらくdjango User モデルを拡張する必要があります。

それ以外の場合は、次のことができます。

  • パスワードを変更および設定するための独自のビューを作成し、関連する URL を のすぐ上に配置して、管理者パスワード オプションをオーバーライドします(r'^admin/', include(admin.site.urls))。正規表現は次のようになります(r'^admin/auth/user/(\d+)/password/', new_change_password)
  • 別のモデルでパスワードの有効期限を追跡し、有効期限が切れたらパスワードの変更にリダイレクトします。
于 2010-11-17T04:10:45.677 に答える