プロジェクトで django_allauth を使用しています。
(1) ユーザーが facebook などのサードパーティ経由でログインしたときに、django ユーザー アカウントがどのように作成されるのですか?
あなたは見てみる必要があります:
- 管理パネルを開き、誰かがログインしたときに何が起こるかを確認してください。
- allauth.facebook.views.loginを実行し、ログイン プロセスの追跡を試みます
それは次のようなものです(一言で言えば):
- ユーザーが Facebook 資格情報を使用してサイトにログインすると、アクセス トークンが与えられます。
- このトークンは FACEBOOK_ACCESS_TOKENS テーブルに保存されます (管理パネルで確認できます)。
- このアクセス トークンと Facebook GraphApi の助けを借りて、彼の social_id を知ることができます
- 彼の social_id がわかると、データベースから彼の Facebook アカウントを取得できます
- まだデータベースに保存していない場合は、Facebook アカウントを FACEBOOK_ACCOUNTS テーブル (管理パネルの Facebook アカウント) に保存します。
- 次に、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 にローカルにコピーされます。