我正在为通过页面注册的用户使用简单的JWT,并自定义令牌的有效负载like stated here。我还将OAuth2 with 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进行了自定义)。
我试图使用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
它可以工作,但是扩展的信息被卡在“数据库”字段中,所以我仍然被卡住,因为我希望将此信息返回到令牌的有效负载中。
感谢您提供任何线索。