Я занимаюсь разработкой приложения django, которое интегрируется с приложениями Google. Я бы хотел, чтобы пользователи входили в свои учетные записи приложений Google (учетные записи в доменах, размещенных на Google, , а не в учетных записях Google ), чтобы они могли получить доступ к своим документам, календарю и еще чему-то.
Для этого я скачал и начал использовать django_openid_auth (и, следовательно, python-openid).
Сначала, чтобы проверить это, я использовал этот URL в своих настройках:
OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/id'
И с этим мне удалось перенаправить пользователя на страницу учетных записей Google, чтобы войти в систему, а затем вернуться в свой собственный домен, с помощью цикла аутентификации , описанного людьми из Google, успешно завершенного. Однако вход в учетные записи Google для меня бесполезен, поскольку я хотел бы, чтобы пользователи, имеющие учетную запись приложений Google в размещенном домене, но не учетную запись Google, могли войти в систему.
Для этого я прочитал статью Google об обнаружении «Обнаружение оконечных точек OpenID для размещенных доменов» и изменил вышеупомянутую настройку на:
OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/site-xrds?hd=<my-domain>.com'
- где, очевидно, <my-domain>
- это мой фактический домен;)
Но сервер ответил следующим сообщением:
Сбой аутентификации OpenID: HTTP
Статус ответа от идентификационного URL хоста
не 200. Получил статус 404
Немного отладив, мне удалось выяснить, что код в python-openid (версия 2.2.4) - это тот, который неправильно интерпретирует ответ от Google, но я в полном недоумении.
Я видел, как аутентификация в моем собственном домене работала в socialwok.com и puffypoodles.com. Поэтому я совершенно уверен, что цикл аутентификации для моего домена приложений Google работает, но почему-то python-openid не может его завершить. (хотя, повторюсь, он отлично работает с простыми старыми аккаунтами Google).
Должен ли я попытаться исправить python-openid или есть другой способ исправить это? Кому-нибудь удалось войти в систему с помощью приложений Google в чистом приложении django (, а не в google app engine )?