Аутентификация с помощью GitHub не использует основной адрес электронной почты

Недавно интегрировал аутентификацию GitHub в свой Django-сайт и заметил, что Python Social Auth регистрирует пользователей, используя не основной адрес электронной почты.

Как можно изменить это поведение?

По замыслу, для аутентификации в GitHub используется электронная почта, которую GitHub возвращает после аутентификации. Как отметил Александр,

Возвращаемый email - это публично видимый адрес электронной почты пользователя (или null, если пользователь не указал публичный адрес электронной почты в своем профиле).

На следующем изображении видно, что в моем случае он вернет me@tiagoperes.eu. Проверьте свой здесь .

enter image description here

Итак, вы можете решить, что используемый email является публичным, а не основным.

Если вы по-прежнему хотите использовать основной email, вам нужно изменить конвейер. Начните с получения списка адресов электронной почты для аутентифицированного пользователя. Вы получите что-то вроде этого

[
  {
    "email": "octocat@github.com",
    "verified": true,
    "primary": true,
    "visibility": "public"
  }
]

Затем настройте создание пользователя так, чтобы вместо него использовался основной email.

Вернуться на верх