使用基于令牌的基本身份验证

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 实例。