Django rest framwork获取token值和前端token携带方法

在进行用户校验时,有多种方法:

1、Cookie:默认可以通过脚本文件获取,容易遭受XSS攻击(跨站脚本攻击);所有浏览器会让用户自愿选择是否存储至cookie。

2、Session:session会在一定时间内保存在服务器上;当访问增多,会比较占用你服务器的性能。

3、Token:在登录时会发放Token,类似于“身份证”,在一些发送要权限校验的请求时,在请求头带上Token即可通过验证。特点:方便、安全。

在Django rest framwork中 获取token的方式:

首先需要在python manage.py 依次 makemigrations 和migrate ,

此做法是需要将django的后台管理操作的对应表迁移到数据库(mysql的迁移表如下):

 其中 authtoken_token会给auth_user中的用户登录时发一个独有的Token,

前端登录时,需要请求Token的url为:

需要注意的是一定是POST请求,当然了 账号密码一定要对,需要在auth_user中相对应数据;

在前端使用sessionStorage将Token储存下来:

登出时sessionStorage.removeItem('token'),清空token。

使用ajax提交时:

Token放在ajax的请求头 headers中 且需要声明如下图

在后台进行登录判断的具体代码:

request.user.is_authenticated会校验用户返回是否登录的布尔值。

 

posted @ 2018-11-19 20:17  stitchez  阅读(3157)  评论(0编辑  收藏  举报