使用Django-rest-auth在Django Restframework中进行令牌认证

时间:2019-03-06 15:57:56

标签: django vue.js oauth-2.0 django-rest-framework django-rest-auth

我将vue.js用于在Django-restframework上制作的应用程序的前端。我正在使用django-rest-auth通过Google进行社交身份验证。

在前端,我正在使用vue-google-oauth2库。两者工作正常。我从前端发送一个身份验证代码,后端使用令牌密钥进行响应。但是,当我在终端上通过键

使用curl时
  

curl -X GET http://127.0.0.1:8000/api/example/ -H'授权:令牌9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b'

我得到了错误:

  

{“详细信息”:“未提供身份验证凭据。”}

我的终端显示为:

  

[06 / Mar / 2019 15:38:54]“ GET / newsfeed / HTTP / 1.1” 401 58

我应该怎么做才能确保cookie或后端维护我的会话的任何东西都不会丢失?

类似地,当我使用oauth2库在前端登录时,我刷新了页面,这也表明我不再登录。

我到底错过了什么?

1 个答案:

答案 0 :(得分:1)

看起来第一个身份验证类设置为基本身份验证。确保您将该视图的令牌库身份验证激活为第一身份验证类。或者您可以在setting.py中全局设置身份验证类。

如果您正在使用类基础视图。这样做

class AccountDetailsView(RetrieveAPIView):
    authentication_classes = [TokenAuthentication,BasicAuthentication]
    serializer_class = AccountDetails
    permission_classes = [IsAuthenticated, ]