OpenID

OpenID support is simpler to implement than OAuth. Google and Yahoo providers are supported by default, others are supported by POST method providing endpoint URL.

OpenID backends can store extra data in UserSocialAuth.extra_data field by defining a set of values names to retrieve from any of the used schemas, AttributeExchange and SimpleRegistration. As their keywords differ we need two settings.

Настройки задаются для каждого бэкенда, поэтому у нас есть два возможных значения для каждого из них. Имя проверяется динамически с использованием заглавного имени бэкенда в качестве префикса:

SOCIAL_AUTH_<uppercase backend name>_SREG_EXTRA_DATA
SOCIAL_AUTH_<uppercase backend name>_AX_EXTRA_DATA

Пример:

SOCIAL_AUTH_GOOGLE_SREG_EXTRA_DATA = [(..., ...)]
SOCIAL_AUTH_GOOGLE_AX_EXTRA_DATA = [(..., ...)]

Настройки должны представлять собой список кортежей, отображающих имя значения в ответе и псевдоним значения, используемый для хранения. Поддерживается третье значение (boolean), которое сигнализирует о том, что значение должно быть отброшено, если оно имеет значение False, это делается для того, чтобы избежать замены старых (нужных) значений, когда они не являются частью текущего ответа. Если он отсутствует, то этой проверки можно избежать, и значение будет заменять любые данные.

Имя пользователя

The OpenID backend will check for a username key in the values returned by the server, but default to first-name + last-name if that key is missing. It’s possible to indicate the username key in the values If the username is under a different key with a setting, but backends should have defined a default value. For example:

SOCIAL_AUTH_FEDORA_USERNAME_KEY = 'nickname'

This setting indicates that the username should be populated by the nickname value in the Fedora OpenID provider.

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