使用 Django-rest-auth 在 Django Restframework 中进行令牌身份验证

Token Authentication In Django Restframework Using Django-rest-auth

我在 Django-restframework 上制作的应用程序的前端使用 vue.js。我正在通过 Google.

使用 django-rest-auth 进行社交身份验证

在前端,我使用的是 vue-google-oauth2 库。两者工作正常。我从前端发送一个授权码,后端用令牌密钥响应。但是,当我在我的终端上使用 curl 键

curl -X GET http://127.0.0.1:8000/api/example/ -H 'Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b'

我收到错误:

{"detail":"Authentication credentials were not provided."}

我的终端显示:

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

我应该怎么做才能确保 cookie 或后端用于维护我的会话的任何内容不会丢失?

同样,当我使用oauth2库在前端登录时,我刷新了我的页面,这也显示我不再登录了。

我到底错过了什么?

看起来第一个身份验证 class 设置为基本身份验证。确保为该视图激活令牌库身份验证作为第一次身份验证 class。或者您可以在 setting.py.

中全局设置身份验证 class

如果您使用的是 class 基本视图。这样做

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