5

ソーシャル登録を提供するためにdjango-allauthを使用しようとしていますが、ユーザーのプロファイルを構成するのに問題があります。伝えるdjango-allauthのドキュメントはありません

  1. ユーザーが facebook などのサードパーティ経由でログインしたときに django ユーザー アカウントが作成される方法
  2. そのユーザーに割り当てられているユーザー名と使用されているパスワード。
  3. Facebook などの特定のサード パーティ プロバイダーは、名前、電子メールなど、ユーザーに関する多くの情報を提供します。そのため、それらを取得してユーザー アカウント/プロファイルに保存するにはどうすればよいでしょうか。

誰かが自分のプロジェクトで allauth を使用していて、詳細を提供できる場合は、非常に役に立ちます。

4

1 に答える 1

11

プロジェクトで django_allauth を使用しています。

(1) ユーザーが facebook などのサードパーティ経由でログインしたときに、django ユーザー アカウントがどのように作成されるのですか?

あなたは見てみる必要があります:

  1. 管理パネルを開き、誰かがログインしたときに何が起こるかを確認してください。
  2. allauth.facebook.views.loginを実行し、ログイン プロセスの追跡を試みます

それは次のようなものです(一言で言えば):

  1. ユーザーが Facebook 資格情報を使用してサイトにログインすると、アクセス トークンが与えられます。
  2. このトークンは FACEBOOK_ACCESS_TOKENS テーブルに保存されます (管理パネルで確認できます)。
  3. このアクセス トークンと Facebook GraphApi の助けを借りて、彼の social_id を知ることができます
  4. 彼の social_id がわかると、データベースから彼の Facebook アカウントを取得できます
  5. まだデータベースに保存していない場合は、Facebook アカウントを FACEBOOK_ACCOUNTS テーブル (管理パネルの Facebook アカウント) に保存します。
  6. 次に、Facebook アカウントに存在するデータを使用して、USERS テーブルにユーザーを作成します。(管理パネルの [ユーザー] セクションで新しいユーザーを確認できます)


(2) そのユーザーに割り当てられているユーザー名と使用されているパスワードは?

前に述べたように、Facebook GraphApi の助けを借りて、Facebook ユーザーのユーザー名を取得し、それを User.username としてユーザー プロファイルに割り当てます


(3) Facebook などの特定のサード パーティ プロバイダーは、次のようなユーザーに関する多くの情報を提供します。彼らの名前、電子メールなど、どうすればそれらを取得してユーザーアカウント/プロファイルに保存できますか?

繰り返しますが、Facebook GraphApi は、必要な情報を取得します。

サイトに django_allauth を統合しましたが、正しく機能しています。他にご不明な点がございましたら、喜んでお答えいたします (可能な場合)。


編集- アバターのサポートについて...

django_allauth の設定、特に以下を確認する必要があると思います。

SOCIALACCOUNT_AVATAR_SUPPORT (= settings.INSTALLED_APPS の「アバター」)

django-avatar のサポートを有効にします。有効にすると、ユーザーのプロフィール画像がサインアップ時に django-avatar にローカルにコピーされます。

于 2012-02-07T17:21:02.670 に答える