2017-10-11 9 views
1

ごとに認証バックエンドは、私は、Djangoのユーザの複数の種類が必要になります。
1.電子メールによって識別され、パスワードで認証されている一般的な管理ユーザ
2に接続し、リモート・アプリケーションdjangoを実行し、事前共有キーとトークンで認証します。そのようなタイプのユーザーには電子メールは不要ですジャンゴ:私のDjangoアプリケーションでユーザモデル

すべてのタイプのユーザーには、関連する属性が異なります。私はDjangoでUserモデルを拡張できることを知っています。 私はすでに電子メール認証バックエンドを作成しました。しかし、これはリモートアプリケーションを含むすべてのアカウントで機能します。

あるタイプのユーザーに対して認証バックエンドを作成する効果的な方法はありますか?

答えて

0

あなたは、リモート・アプリケーション用のカスタム認証バックエンドを作成し、このようなあなたの設定でそれを表示することができます。この道を

AUTHENTICATION_BACKENDS = (
    'path.to.email.authentication', 
    'path.to.remote.app.authentication', 
) 

、Djangoは最初の電子メール認証を使用しようとすると、それが失敗した場合にしようとしますリモートアプリ認証。

あなたはhere

はそれが役に立てば幸いカスタム認証バックエンドについて読むことができます!

0

パスワード認証を無効にしたい場合は、set_unusable_passwordを使用できます。ドキュメントから:

ユーザーにパスワードが設定されていないとマークします。これはパスワードに空文字列を付けることと同じではありません。このユーザーのcheck_password()は決してTrueを返しません。 Userオブジェクトを保存しません。

アプリケーションの認証がLDAPディレクトリなどの既存の外部ソースに対して行われる場合には、これが必要になる場合があります。

関連する問題