Django不认识我的代币?
我在后端使用Django Rest框架,在前端使用ember cli应用程序。身份验证工作正常,但授权中似乎存在漏洞Django不认识我的代币?,django,ember.js,django-rest-framework,django-rest-auth,Django,Ember.js,Django Rest Framework,Django Rest Auth,我在后端使用Django Rest框架,在前端使用ember cli应用程序。身份验证工作正常,但授权中似乎存在漏洞 # settings.py REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.AllowAny', ), 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.auth
# settings.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.AllowAny',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
}
# views.py
class CurrentUserView(APIView):
"get the data for the current authenticatd user"
permission_classes = (IsAuthenticated,)
def get_queryset(self, request):
queryset = User.objects.filter(username=request.user.username)
return queryset
def get(self, request):
serializer = UserSerializer(request.user)
return Response(serializer.data)
当我向这个端点/v1/me/发出请求时,它会以403作为响应。当我关闭permission类时,我返回{id:null,username:,is_active:false},因为它不知道我是谁
另外,当我使用可浏览的API时,/v1/meURL可以正常工作
在余烬方面,我使用我的帐户登录,并正确地取回我的令牌。在请求中,正在传递授权:令牌asdf1234asdf1234asdf1234。我想Django拿走了那个令牌,知道我是谁?我遗漏了什么吗?试试类似的方法
from rest_framework import authentication
class TokenAuthView(APIView):
authentication_classes = (authentication.TokenAuthentication,)
那么
在设置中,您需要添加身份验证令牌
# settings.py
INSTALLED_APP = ('rest_framework.authtoken',)
您不需要在每个视图上都添加身份验证类。没有TokenGETAuthentication,但我添加了该身份验证类,它可以正常工作。我不知道为什么,因为这应该是我的默认身份验证类,应该自动应用?我从我的系统复制粘贴了它,我重命名为:。已更新
# settings.py
INSTALLED_APP = ('rest_framework.authtoken',)