使用基於令牌的基本身份驗證

Django REST Framework 提供了一種基本的基於令牌的身份驗證機制,需要在可用之前將其配置為 Django 中的應用程式,以便在資料庫中建立令牌,並處理其生命週期。

將基於令牌的身份驗證新增到 settings.py

INSTALLED_APPS = (
    ...
    'rest_framework.authtoken'
)

執行資料庫遷移

./manage.py migrate

為你的使用者建立令牌

不知何故,你將不得不建立一個令牌並將其返回:

def some_api(request):
    token = Token.objects.create(user=request.user)
    return Response({'token': token.key})

令牌應用程式中已有一個 API 端點,因此你只需將以下內容新增到 urls.py:

urls.py

from rest_framework.authtoken import views
urlpatterns += [
    url(r'^auth-token/', views.obtain_auth_token)
]

客戶現在可以進行身份​​驗證

使用 Authorization 標頭如:

Authorization: Token 123456789

以文字 Token 為字首,令牌本身在空白之後。

可以通過子類化 TokenAuthentication 和更改 keyword 類變數來更改文字。

如果經過身份驗證,request.auth 將包含 rest_framework.authtoken.models.BasicToken 例項。