一般情况下,进入到web网站主页都需要进行token或者其它验证,不能在没有登录的情况下可以查看主页的内容,在用户输入用户名密码后,进行校验成功,后台会返回一个token,用于用于下次访问主页或其它页面进行用户认证,一旦认证成功就可以访问了。

1、用户获取token

用户向后台API发送用户名和密码进行校验以及获取token。

 methods: {

      loginSubmit(formName) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
const res = await this.$http.post('login', this.form);
const {data, meta: {message, code}} = res.data;
if (code === 2000) { //获取token,将token值存储在localStorage
localStorage.setItem('token', data.token); //验证成功后直接跳转到主页
this.$router.push({name: 'home'});
//登陆成功提示
this.$message.success(message)
} else {
this.$message.warning(message)
} } else {
this.$message.warning("用户名或密码不能为空")
}
});
}
},

2、后台进行验证

class LoginView(APIView):
authentication_classes = [] # 登陆页面免认证,其余的已经全局配置 def post(self, request, *args, **kwargs): ret = {
"data": {},
"meta": {
"code": 2001,
"message": "用户名或密码错误"
}
}
user_obj = json.loads(str(request._request.body, encoding='utf8'))
username = user_obj.get('username')
password = user_obj.get('password')
if username and password:
obj = UserInfo.objects.filter(
username=username, password=password).first()
if obj: token = get_md5(username)
# 自动去数据库检查,如果没有就创建,否则更新token
UserToken.objects.update_or_create(user=obj, defaults={'token': token}) ret["data"]["username"] = username
ret["data"]["password"] = password
ret["data"]["token"] = token ret["meta"]["code"] = 2000
ret["meta"]["message"] = "登陆成功"
else:
pass
else:
pass
return HttpResponse(json.dumps(ret, ensure_ascii=False))

基于restframework进行token验证的更多相关文章

  1. 基于jwt的token验证

    一.什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519). 该token被设计为紧凑且安全的,特别适用于分布 ...

  2. Django restframework之Token验证的缺陷及jwt的简单使用

    一.主要缺陷: 1.Token验证是放在一张表中,即authtoken_token中,key没有失效时间,永久有效,一旦泄露,后果不可想象,安全性极差. 2.不利于分布式部署或多个系统使用一套验证,a ...

  3. Asp.Net Core 3.1 学习3、Web Api 中基于JWT的token验证及Swagger使用

    1.初始JWT 1.1.JWT原理 JWT(JSON Web Token)是目前最流行的跨域身份验证解决方案,他的优势就在于服务器不用存token便于分布式开发,给APP提供数据用于前后端分离的项目. ...

  4. 基于JWT实现token验证

    JWT的介绍 Json Web Token(JWT)是目前比较流行的跨域认证解决方案,是一种基于JSON的开发标准,由于数据是可以经过签名加密的,比较安全可靠,一般用于前端和服务器之间传递信息,也可以 ...

  5. 基于 JWT-Auth 实现 API 验证

    基于 JWT-Auth 实现 API 验证 如果想要了解其生成Token的算法原理,请自行查阅相关资料 需要提及的几点: 使用session存在的问题: session和cookie是为了解决http ...

  6. 基于.Net Framework 4.0 Web API开发(4):ASP.NET Web APIs 基于令牌TOKEN验证的实现

    概述:  ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但是在使用API的时候总会遇到跨域请求的问题, ...

  7. Web APIs 基于令牌TOKEN验证的实现

    Web APIs 基于令牌TOKEN验证的实现 概述: ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但 ...

  8. ASP.NET Web APIs 基于令牌TOKEN验证的实现(保存到DB的Token)

    http://www.cnblogs.com/niuww/p/5639637.html 保存到DB的Token 基于.Net Framework 4.0 Web API开发(4):ASP.NET We ...

  9. 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)

    微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...

随机推荐

  1. (PASS)break 和 continue 的区别

    1  break;  while循环中,break是用于永久终止循环.即不执行本次循环中break后面的语句,直接跳出循环. 终止,跳出,结束循环(可以作用在任何地方).也常与switch分支结构合用 ...

  2. goto和函数调用

      goto: 函数调用: 作用域 label在函数内定义,所以函数内   跳转操作 无条件 调用时先保存现场,复制实际参数,然后才是跳转 生存期 由于不是左值,它没有生存期,仅在编译期有意义.   ...

  3. koa2 使用 async 、await、promise解决异步的问题

    koa代码编写上避免了多层的嵌套异步函数调用 async await来解决异步 - async await 需要依赖于promise 三主角: __函数前面 async, 内部才能await,要想aw ...

  4. win10配置jdk环境变量及遇到的坑

    第一步.在系统变量中新增变量命名JAVA_HOME,值为jdk的安装目录 JAVA_HOME C:\Program Files\Java\jdk1.8.0_231 第二步.在系统变量中增加path的值 ...

  5. spring.xml及注解

    spring.xml配置文件中配置注解: 开启注解(及自动扫描包中bean): 1:<context:component-scan base-package="com.bzu" ...

  6. CSS适配,方案

    1.尺寸常用单位:   https://www.cnblogs.com/whitewolf/p/css-em-px-percentage.html px.em.rem.% 2.CSS的长度单位适配方案 ...

  7. 组合数学(math)

    组合数学(math) 题目描述 为了提高智商,zjy开始学习组合数学.某一天她解决了这样一个问题:“给一个网格图,其中某些格子有财宝.每次从左上角出发,只能往右或下走.问至少要走几次才能把财宝全部捡完 ...

  8. iOS 几种定时器

    //第一种 每一秒执行一次(重复性) double delayInSeconds = 1.0; timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_ ...

  9. 在ag-grid表格上实现类似Excel中的按下enter键自动跳转到下一行对应的输入框功能,Angular4开发

    最近的项目使用ag-grid在Angular中处理表格,收到个需求是要能够同时修改大量的数据,按下Enter键的时候,光标得自动跳到下一行的对应列上. 方法一:用ag-grid自带的 enterMov ...

  10. elasticsearch5.5.2安装

     elasticsearch5.x安装中一些问题的解决办法 最近在学习elk,由于编译安装使用5.2.1版本的elasticsearch,所以遇到了很多问题,下面是一些问题及解决办法. 1.修改访问e ...