新人学习django 是按照这个大佬的教程学习的
链接: https://www.cnblogs.com/derek1184405959/p/8733194.html.
很多步骤都是按照上面的教程学习的,这里只是记录一下自己学习的过程和一些错误
如果有人想要系统的学习,建议去上面那位大佬处学习
1.drf自带的token
(1)INSTALL_APP中添加
INSTALLED_APPS = (
...
'rest_framework.authtoken'
)
token会生成一张表authtoken_token,所以要运行python manage.py makemigrations
python manage.py migrate
(2)配置url
from rest_framework.authtoken import views
urlpatterns = [
# drf自带的token认证
path('api-token-auth/', views.obtain_auth_token)
]
postman发送数据
先创建一个superuser
python manage.py createsuperuser
然后再用postman发送数据
发送给http://127.0.0.1:9000/api-token-auth
图片中是弄混了
然后会返回token的值
drf的token缺点
保存在数据库中,如果是一个分布式的系统,就非常麻烦
token永久有效,没有过期时间。
2.json web token 方式完成用户认证
(1)安装jwt
使用方法
http://getblimp.github.io/django-rest-framework-jwt/
pip install djangorestframework-jwt
(2)配置
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
)
}
(3)配置url
# jwt的token认证接口
path('login/', obtain_jwt_token )
(4)postman发送数据
3.vue和jwt接口调试
vue中的登录接口
//登录
export const login = params => {
return axios.post(`${local_host}/login/`, params)
}
接口更改完成
登录
jwt接口它默认采用的是用户名和密码登录验证,如果用手机登录的话,就会验证失败,所以我们需要自定义一个用户验证
自定义用户认证
settinds中配置
AUTHENTICATION_BACKENDS = (
'users.views.CustomBackend