Я использую django_allauth в моем проекте.
(1) Как создается учетная запись пользователя django, когда пользователь входит в систему с помощью третьей стороны, например, Facebook?
Вы должны взглянуть на:
- ваша административная панель и посмотрите, что произойдет, когда кто-нибудь войдет в систему.
- allauth.facebook.views.login и попытайтесь отследить процесс входа в систему
Это что-то вроде этого (в нескольких словах):
- Когда пользователь входит на ваш сайт через свои учетные данные Facebook, ему предоставляется токен доступа
- Этот токен сохраняется в таблице FACEBOOK_ACCESS_TOKENS (вы можете увидеть его на панели администратора)
- С помощью этого токена доступа и с помощью Facebook GraphApi мы узнаем его social_id
- Когда мы узнаем его social_id - мы можем получить его учетную запись Facebook из нашей базы данных
- Если мы еще не сохранили его в БД - мы сохраняем учетную запись Facebook в таблице FACEBOOK_ACCOUNTS (учетные записи Facebook в панели администратора)
- Затем мы создаем пользователя в таблице USERS с данными, присутствующими в учетной записи Facebook. (вы можете увидеть нового пользователя в разделе «Пользователи» на панели администратора).
(2) Какое имя пользователя назначено этому пользователю и какой пароль используется?
Как я упоминал ранее, с помощью Facebook GraphApi мы получаем имя пользователя Facebook, и оно присваивается профилю пользователя как User.username.
(3) Некоторые сторонние поставщики, такие как Facebook, предоставляют много информации о пользователе, например, его имя, адрес электронной почты и т. Д. Так как мы можем получить их и сохранить в учетной записи / профиле пользователя?
Опять же - Facebook GraphApi - он получает необходимую информацию.
Я встроил django_allauth в свой сайт, и он работает правильно. Я буду рад ответить (если смогу), если у вас есть еще вопросы.
РЕДАКТИРОВАТЬ - Для поддержки аватара ...
Я думаю, вы должны взглянуть на настройки django_allauth и особенно на:
SOCIALACCOUNT_AVATAR_SUPPORT (= 'avatar' in settings.INSTALLED_APPS)
Включить поддержку django-avatar. Когда включено, изображение профиля
пользователь копируется локально в django-аватар при регистрации.