Django Open ID - назначьте разрешения пользователям, которые никогда не входили в систему по электронной почте

Я использую django-auth с расширением django-auth-openid, чтобы использовать OpenID (в частности, Google) для входа пользователей на мой сайт. У меня около 90 пользователей, которые будут пользоваться сайтом. Все они имеют учетные записи Google, и будут использовать их для доступа к сайту. Поскольку база пользователей установлена ​​(регистрация не разрешена, только администраторы могут добавлять пользователей), у меня уже есть исчерпывающий список всех моих пользователей, включая их адреса электронной почты и другую информацию. Как я могу разрешить этим пользователям входить со своими адресами Gmail без предварительной регистрации? По сути, я бы хотел, чтобы django-auth-openid сопоставлял адреса Gmail OpenID со строками в существующей таблице Users django-auth. Это возможно?

Спасибо!

1 ответ

Решение

В итоге я использовал библиотеку https://github.com/omab/python-social-auth (со встроенной поддержкой Django). Документация для использования с Django невелика, но между документами и предоставленным примером было относительно легко интегрировать ее с моей существующей установкой django-auth. После этого я просто удалил конвейер 'create_user' из кортежа SOCIAL_AUTH_PIPELINE в моих настройках, и, таким образом, в него допускались только пользователи с существующими соединениями OpenID (новых регистраций не происходило при входах в систему OpenID). Это означало, однако, что мне пришлось создавать эти соединения (между идентификаторами OpenID и пользователями) вручную, но это было довольно легко сделать, просто используя оболочку Django Python.

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