Я хочу зарегистрировать пользователей с помощью Linkedin, чтобы получить их имя, фамилию и адрес электронной почты.Для этого я использую Аллаута на Джанго.Я могу зарегистрировать имя и фамилию, но не могу автоматически сохранить электронное письмо из данных.
Глядя в начало ›Социальные учетные записи› Социальные учетные записи ›" the_user "на Дополнительные данные: {" elements ": [{" handle ":" urn: li: emailAddress: 152954186 "," handle ~ ": {"emailAddress": "example@example.com"}}], "firstName": {....Я вижу, что код извлекает письмо, но не сохраняет его.
Проверка выбора * из auth_user (из базы данных) или в Домашняя страница ›Аутентификация и авторизация› Пользователи, я вижу, что код не сохраняет электронную почту автоматически.Я полагаю, что код извлекает имя и фамилию, так как эти элементы не находятся внутри массивов.
У моего приложения-мультфильма есть разрешения r_emailaddress, r_liteprofile и w_member_social, и я использую OAuth 2.0.
В настройках.py:
ALLOWED_HOSTS = ['localhost']
INSTALLED_APPS = [
...
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.linkedin_oauth2',
]
SOCIALACCOUNT_QUERY_EMAIL = True
SOCIALACCOUNT_PROVIDERS = \
{
'linkedin_oauth2': {
'SCOPE': [
'r_liteprofile',
'r_emailaddress',
'w_member_social',
],
'PROFILE_FIELDS': [
'id',
'firstName',
'lastName',
'emailAddress',
'email-address',
'profilePicture',
'public-profile-url',
],
'LOCATION_FIELDS': [
'location',
],
'POSITION_FIELDS': [
'company',
]
}
}
SOCIAL_AUTH_LINKEDIN_OAUTH2_KEY = 'secret' # App ID
SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET ='secret' #app key
и в register.html
{% extends "main/index.html" %}
{% load socialaccount %}
{% block content %}
<form method="post">{% csrf_token %}
<p>Datos Registro:</p>
{{ form.as_p }}
<input type="submit" value="Register">
</form>
If you have an account, <a href="login">login</a> instead.
<br>
<a href="{% provider_login_url "facebook" method="oauth2" %}">Facebook OAuth2</a>
<a href="{% provider_login_url "linkedin_oauth2" method="oauth2" %}">Linkedin OAuth2</a>
{% endblock %}
и в url.py приложения
urlpatterns = [
...
path('accounts/', include('allauth.urls')),
]
То, что я хочу, это кодавтоматически сохранять элемент электронной почты в столбце auth_user.email.Я мог бы сделать это с помощью триггера в базе данных, но это неправильно для меня.
Пожалуйста, помогите мне в успешном хранении данных на пути Django