在进行用户校验时,有多种方法:前端
一、Cookie:默承认以经过脚本文件获取,容易遭受XSS攻击(跨站脚本攻击);全部浏览器会让用户自愿选择是否存储至cookie。python
二、Session:session会在必定时间内保存在服务器上;当访问增多,会比较占用你服务器的性能。mysql
三、Token:在登陆时会发放Token,相似于“身份证”,在一些发送要权限校验的请求时,在请求头带上Token便可经过验证。特色:方便、安全。ajax
在Django rest framwork中 获取token的方式:sql
首先须要在python manage.py 依次 makemigrations 和migrate ,数据库
此作法是须要将django的后台管理操做的对应表迁移到数据库(mysql的迁移表以下):django
其中 authtoken_token会给auth_user中的用户登陆时发一个独有的Token,浏览器
前端登陆时,须要请求Token的url为:安全
须要注意的是必定是POST请求,固然了 帐号密码必定要对,须要在auth_user中相对应数据;服务器
在前端使用sessionStorage将Token储存下来:
登出时sessionStorage.removeItem('token'),清空token。
使用ajax提交时:
Token放在ajax的请求头 headers中 且须要声明以下图
在后台进行登陆判断的具体代码:
request.user.is_authenticated会校验用户返回是否登陆的布尔值。