social_ django расширение полезной нагрузки токена - настройка утверждений - PullRequest
0 голосов
/ 05 августа 2020

Я использую простой JWT для пользователей, зарегистрированных через страницу, и настраиваю полезную нагрузку токена , как указано здесь . Я также использую OAuth2 с social_ django с google-oauth2.

После входа в систему OAuth2 я получаю ответ от моего сервера

access: "ey...",
refresh: "ey...",​​
user: "user@gmail.com"

Я хотел бы расширить полезную нагрузку токена доступа, чтобы после декодирования я получил больше информации. В настоящее время у меня есть полезная нагрузка:

{
  "token_type": "access",
  "exp": number,
  "jti": "string",
  "user_id": 3
}

Пользователь, входящий в систему через Google, получает другую полезную нагрузку, чем пользователь, вошедший в систему со своей учетной записью, созданной с помощью Django регистрации (из-за настройки, которую я сделал для simpleJWT).

Вопрос: Есть ли способ заставить social_ django использовать простой JWT или настроить полезную нагрузку токена моего сервера?

Я пытался использовать AUTHENTICATION_BACKENDS и расширять классы BaseOAuth и GoogleOAuth

class CustomBaseOAuth(BaseOAuth2):
    def extra_data(self, user, uid, response, details=None, *args, **kwargs):
        """Return access_token, token_type, and extra defined names to store in
            extra_data field"""
        data = super(BaseOAuth2, self).extra_data(user, uid, response,
                                                  details=details,
                                                  *args, **kwargs)
        data['uuid'] = str(user.unique_id.hex)
        return data

, и он работает, но расширенная информация застревает в поле базы данных, поэтому я все еще застрял, потому что я хочу, чтобы эта информация была возвращена в полезной нагрузке токена.

Спасибо за любые подсказки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...