簡體   English   中英

DRF令牌身份驗證:{“詳細信息”:“未提供身份驗證憑據。”}

[英]DRF Token Authentication: { “detail”: “Authentication credentials were not provided.” }

我正在從事Django電子商務項目。

我試圖實現令牌認證系統。 我添加了rest_framework.authtokenINSTALLED_APPS

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (

        'rest_framework.authentication.TokenAuthentication',
    ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    )
}

到設置文件。

這是我的urls.py

    path('admin/', admin.site.urls),
    path('login_signup/',include('login_signup.urls')),
    path('profile',include('profile_info.urls')),
    path('',include('category.urls')),
    path('cart',include('cart.urls')),
    path('api_token_auth',views.obtain_auth_token,name='auth-token'),
]

這是我的category.urls文件。


urlpatterns=[
path('category',CategoryView.as_view(),name='category'),
path('subcategory',SubcategoryView.as_view(),name='subcategory'),
path('product',ProductView.as_view(),name='product'),
path('search',SearchView.as_view(),name='search'),
]

我可以通過在api_token_auth端點提供用戶名和密碼來獲取令牌。 在此處輸入圖片說明

現在,只要以這種格式添加Authorization HTTP標頭,我就應該能夠訪問任何API。 授權:令牌“ xyz”

但是我不斷收到{"detail":"Authentication credentials were not provided"} 在此處輸入圖片說明

這是我嘗試訪問的視圖。


class SubcategoryView(APIView):
       def get(self,request):
           serializer=SubcategorySerializer(Subcategory.objects.all(),many=True)
           return JsonResponse({"subcategories":serializer.data})

為什么我不斷收到此錯誤? 我究竟做錯了什么?

Authorization標頭值中刪除: Authorization標頭的值應如下所示:

Token <token value>

您需要像Authorization: Token 1740...20一樣將令牌作為標頭傳遞Authorization: Token 1740...20 Token后沒有分號。 這是curl命令

curl -X GET http://127.0.0.1:8000/subcategory/ -H 'Authorization: Token 1740...20'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM