如何从django-rest-framework-social-oauth2转换令牌视图返回用户?

时间:2017-08-21 06:02:04

标签: python django django-rest-framework django-authentication

我目前正在使用Django-rest-framework-social-oauth2,它是convert-toke端点。我将来自Facebook的用户令牌与请求发送到此终点,成功后,将使用以下数据进行响应:

{
  "access_token": "************",
  "token_type": "Bearer",
  "expires_in": 36000,
  "refresh_token": "************",
  "scope": "read write"
}

但是,我也希望获得经过身份验证的用户的ID,因此我尝试在自定义视图中使用request.user,但它始终返回AnonymousUser。

class SocialView(ConvertTokenView):


 def post(self, request, *args, **kwargs):

        response = super(SocialView, self).post(request, *args, **kwargs)

修改

我找到了一种方法,我可以通过响应中的access_token检索用户。

user = AccessToken.objects.get(token=response.data['access_token'])

但我不确定这是否正确?

1 个答案:

答案 0 :(得分:1)

检索到的

AccessToken是实际访问令牌的实例,它具有用户属性。

token = AccessToken.objects.get(token=response.data['access_token'])
user = token.user

参考