安装app
修改settings.py增加rest_framework.authtoken
INSTALLED_APPS = (
'rest_framework',
'rest_framework.authtoken',
'myapp',
)
增加权限验证
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAdminUser',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
)
}
升级表可以看到增加了authtoken_token表
python manage.py migrate
添加url
编辑urls.py
from rest_framework.authtoken import views
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^api-token-auth/', views.obtain_auth_token),
]
获取token
http POST 127.0.0.1:8000/api-token-auth/ username=’admin’ password=’password’
{
"token": "9d1ff379e5e380c143ceadb66dde26b2b09dd4ab"
}
查看验证
http GET 127.0.0.1:8000/users/
{
"detail": "身份认证信息未提供。"
}
http GET 127.0.0.1:8000/users/ ‘Authorization:Token 9d1ff379e5e380c143ceadb66dde26b2b09dd4ab’
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"date_joined": "2018-09-12T22:46:35.919532+08:00",
"id": 1,
"url": "http://127.0.0.1:8000/users/1/",
"username": "admin"
}
]
}