0

私は自分のdjangoプロジェクトでpythonソーシャル認証を試していますが、ログに記録されたユーザーを作成/保存/取得する最も簡単な方法(たとえば、Google経由)を理解するのに苦労しています。

たとえば、gmail からログインすると、social auth/Users テーブルにエントリが作成されます。でも; Auth/Users テーブルには、一度に 1 つのエントリしかありません (ログインしているユーザー)。

今、私のソーシャル認証パイプラインは次のようになります

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.social_auth.social_details',
    'social.pipeline.social_auth.social_uid',
    'social.pipeline.social_auth.auth_allowed',
    'social.pipeline.social_auth.social_user',
    'social.pipeline.user.get_username',
    'social.pipeline.mail.mail_validation',
    'social.pipeline.user.create_user',
    'social.pipeline.social_auth.associate_user',
    'social.pipeline.social_auth.load_extra_data',
    'social.pipeline.user.user_details',
    'path.to.my.own',
)

ご覧のとおり、最後に独自のパイプライン ハンドラーがあり、これを使用してより多くの情報を抽出できます。

ソーシャルログインユーザーをDBから保存および取得するための最良の方法/ベストプラクティスについてオンラインで多くの例を見ていないので、私は混乱していると思いますか? パイプラインからソーシャル認証ユーザーの名前、電子メールなどを抽出して独自のモデルを作成する必要がありますか、それとも何らかの方法で既に提供されていますか? 明確にするために質問を言い換えると思います:djangoのpythonソーシャル認証には、使用できるユーザーソーシャル認証テーブルのモデルが含まれていますか?

4

1 に答える 1

0

loginサイトのボタン/リンクをクリックしたときに python-social-auth がどのように機能するかについて混乱していると思います。ユーザーがログインしている場合、ソーシャル アカウントはそのユーザーに関連付けられますが、誰もログインしていない場合は、新しいユーザー インスタンスが作成されます (ソーシャル アカウントが既にサイトで使用されていない場合)。

Python-social-auth は django-auth と統合され、カスタム ユーザー モデルもサポートします。ソーシャル アカウントの関連付けを追跡するための一連のテーブルだけをユーザー モデルに提供するわけではありません。

于 2014-04-20T17:17:01.313 に答える