博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue + Django 2.0.6 学习笔记 7.1 drf的token登录
阅读量:4127 次
发布时间:2019-05-25

本文共 1262 字,大约阅读时间需要 4 分钟。

DRF 使用的是TokenAuthentication 以前用template渲染的哪种登录方式是用SessionAuthentication 一般浏览器是采用这种的。但是前后端分离的话因为是跨站的。所以几乎不采用Session的方式 。

要杂用呢?

首先要把这种认证方式加入到应用中:

settings.py:

REST_FRAMEWORK = {# 这条是之前的    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',# 这条是新加的    'DEFAULT_AUTHENTICATION_CLASSES': (            'rest_framework.authentication.BasicAuthentication',            'rest_framework.authentication.SessionAuthentication',            'rest_framework.authentication.TokenAuthentication',        )}INSTALLED_APPS = [    'rest_framework.authtoken']

urls.py

from rest_framework.authtoken import viewsurlpatterns = [    path('api-token-auth/', views.obtain_auth_token)]

然后makemigration和migrate

然后数据库中就有了这个表

表中的数据刚开始是空的

因为之前创建的用户没有经过token认证创建key所以是空的。 那咋办

通过postman来发送用户名和密码 让TokenAuthentication自动创建key

点击send之后在软件下方会返回token的key值

这时候再去查数据库表就有了该值。

 

原理:

urls.py:from rest_framework.authtoken import viewspath('api-token-auth/', views.obtain_auth_token)# 通过rest_framework.authtoken.views.obtain_auth_token 找到对应类:obtain_auth_token = ObtainAuthToken.as_view()#然后找到ObtainAuthToken这个类

看下面那个post请求 它接收数据后进行校验(serializer_class = AuthTokenSerializer 这是校验对象)如果校验账号密码没问题则查询是否有token, 没有的话就创建一个token (token, created = Token.objects.get_or_create(user=user))

7.1 完结

转载地址:http://wiepi.baihongyu.com/

你可能感兴趣的文章
C#多线程学习
查看>>
关于委托事件的一两个很好的例子
查看>>
我分享,我快乐
查看>>
获取dataGridView当前行的值
查看>>
翻译帮手
查看>>
金山词霸2007注册码
查看>>
winform响应回车事件
查看>>
Install Shield6.22下载
查看>>
动态WEB入门 CSS+Div
查看>>
我的职业规划
查看>>
校园网图书馆资源使用问题
查看>>
ASP.NET 1.0 升级至 ASP.NET 2.0问题总结
查看>>
sql2005使用sa登录错误的解决
查看>>
SQL Server2005下载地址
查看>>
在安装项目中把MSDE也打包进去
查看>>
利用sniffer获取遗忘的sa登陆密码
查看>>
用C#生成Excel文件的方法和Excel.dll组件生成的方法
查看>>
Windows XP style Explorer Bar使用问题说明
查看>>
一位招聘者给应聘大学生的忠告
查看>>
网站三层架构学习之一 分层式结构
查看>>