Получить контакты 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