【发布时间】:2021-03-16 15:42:50
【问题描述】:
我有以下settings.py。我只有token认证
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',),
}
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders',
'rest_framework',
'rest_framework.authtoken',
views.py
class UserView(APIView):
authentication_classes = [TokenAuthentication]
permission_classes = [IsAuthenticated]
def get(self,request,*args,**kwargs):
print(request.user)
当我尝试访问特定网址时,我收到以下错误
HTTP 401 Unauthorized
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
WWW-Authenticate: Token
{
"detail": "Authentication credentials were not provided."
}
我已经尝试删除 IsAuthenticated,然后它可以工作,但用户是匿名用户。我该如何解决这个问题?我想访问当前登录的用户详细信息。另外,如何在 url 级别访问它。例如,我有一个 url "localhost:8000/api/values/param1/param2" 我怎样才能在这里给一个令牌?当我实际尝试使用此 url 访问时出现错误
【问题讨论】:
标签: django django-rest-framework django-views django-templates