【问题标题】:how to return user from django-rest-framework-social-oauth2 convert token view?如何从 django-rest-framework-social-oauth2 转换令牌视图返回用户?
【发布时间】:2018-01-29 02:54:08
【问题描述】:

我目前正在使用 Django-rest-framework-social-oauth2,它是转换令牌端点。我从 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'])

但我不确定这样做是否正确?

【问题讨论】:

  • 好吧,我找到了一种方法,并使用响应 user = AccessToken.objects.get(token=response.data['access_token']) 中的 access_token 检索了用户,但不确定它是否正确?

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


【解决方案1】:

AccessToken 检索到的是实际访问令牌的一个实例,它有一个用户属性。

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

参考

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 2020-08-19
    • 2020-02-16
    • 2020-01-28
    • 2019-11-25
    相关资源
    最近更新 更多