基于restframework进行token验证
Posted shenjianping
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于restframework进行token验证相关的知识,希望对你有一定的参考价值。
一般情况下,进入到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验证的主要内容,如果未能解决你的问题,请参考以下文章
python 为Django restframework生成JWT(JSON WEB TOKEN)