Получить контакты Google через OpenID аутентификацию в Django

Я использую пакет Django django_openid_auth и этот фрагмент кода для аутентификации пользователя в Django через его OpenID.

Это работает отлично. Пользователь перенаправляется на страницу учетных записей Google, чтобы получить разрешение, а затем перенаправляется обратно.

Тем не менее, это только серверы для получения электронной почты пользователя / кулак имя / фамилия. Если я хочу получить список контактов пользователя или даже полезную информацию, такую ​​как дата рождения или аватар, как это работает?

Я предполагаю, что, так как я получаю электронную почту / имена через расширение OpenID AX, я могу аналогичным образом получить информацию OAuth, используя расширение Ext2?

Я знаю, что API контактов Google требуется проверка подлинности OAuth. Поскольку я вхожу в систему с помощью OpenID, включена ли эта проверка подлинности OAuth или я должен сделать это в новом отдельном процессе? Короче говоря, это аутентификация OpenID, включая процесс аутентификации для получения информации о контактах / учетной записи, или я должен аутентифицироваться и использовать отдельный процесс?

Внутренняя механика используемого механизма OpenID находится в модуле django_openid_auth.

Может ли кто-нибудь указать мне правильное направление? Спасибо.

1 ответ

Я думаю, что вы должны подумать об использовании OAuth2 вместо сочетания OpenID2 и OAuth 1. Это возможно сделать с последним, но намного проще использовать OAuth2. Я не разбираюсь в конкретных библиотеках OAuth2 для Django, но библиотека Python OAuth2, созданная Google, является "современной". У этого даже есть информация об использовании этого с Джанго

https://developers.google.com/api-client-library/python/guide/aaa_oauth

Эта библиотека позволит вам запросить область контактов, а также интересующую вас область userinfo.profile.

надеюсь это поможет.

davep

Другие вопросы по тегам