Аутентификация с помощью GitHub не использует основной адрес электронной почты
Недавно интегрировал аутентификацию GitHub в свой Django-сайт и заметил, что Python Social Auth регистрирует пользователей, используя не основной адрес электронной почты.
Как можно изменить это поведение?
По замыслу, для аутентификации в GitHub используется электронная почта, которую GitHub возвращает после аутентификации. Как отметил Александр,
Возвращаемый email - это публично видимый адрес электронной почты пользователя (или null, если пользователь не указал публичный адрес электронной почты в своем профиле).
На следующем изображении видно, что в моем случае он вернет me@tiagoperes.eu
.
Проверьте свой здесь .
Итак, вы можете решить, что используемый email является публичным, а не основным.
Если вы по-прежнему хотите использовать основной email, вам нужно изменить конвейер. Начните с получения списка адресов электронной почты для аутентифицированного пользователя. Вы получите что-то вроде этого
[
{
"email": "octocat@github.com",
"verified": true,
"primary": true,
"visibility": "public"
}
]
Затем настройте создание пользователя так, чтобы вместо него использовался основной email.