Python itsdangerous 生成token和验证token
代码如下
class AuthToken(object):
# 用于处理token信息流程:
# 1、更加给定的用户信息生成token
# 2、保存生成的token,以便于后面验证
# 3、对用户请求多来的token进行验证:
# 验证成功--->继续执行后面操作
# 验证失败--->返回状态码通知client带用户信息来重新生成token
def __init__(self, token_key):
self.token_key = token_key
def generate_token(self, expiration=3600):
# 生成token需要信息:id,secret,empire/然后对这些信息进行算法加密
token_obj = Serializer(SECRET_KEY, expires_in=expiration) #SECRET_KEY为自定义的salt 例如:'asdfasdf'
token = token_obj.dumps({'token_key': self.token_key})
return token
@staticmethod
def verify_auth_token(token):
# 验证token
token_obj = Serializer(SECRET_KEY)
try:
token_obj.loads(token) #如果token验证不成功,会报两种错误
except SignatureExpired: #时间过期
msg = 'valid token, but expired'
return msg
except BadSignature: #token错误
msg = 'Invalid token'
return msg
return True
def save_token_key(self):
# 仅需要保存self.token_key就可以,通过token_key进行实例化.将其保存在redis。这里进行redis连接和保存
redis_obj = RedisConnect()
redis_obj.client.hset('token', 'api_name', self.token_key)
Python itsdangerous 生成token和验证token的更多相关文章
- python中生成JWK(json web token)
#需要安装pyjwt import jwt import time # 使用 sanic 作为restful api 框架 def create_token(request): grant_type ...
- 【Python】Django【邮箱验证】 后端验证如何生成 token加密验证码 与如何解码!!!!
1.生成token验证码方案 ,使用itsdangerous 大宝剑, 可以序列化出验证码,并能设置过期时间 安装 itsdangerous pip install itsdangerous ...
- Python 生成 JWT(json web token) 及 解析方式
一.关于 jwt 的原理及概念可以自行在网络上搜索了解一下,这里推荐一篇写的比较好的博客 深入了解Json Web Token之概念篇 另附 JWT 的官方文档: https://jwt.io/int ...
- python Web生成token的几种方法,你确定不进来看看?
1.使用rest_framework_jwt from rest_framework_jwt.settings import api_settings jwt_payload_handler = ap ...
- 基于ASP.NET Core Data Protection生成验证token
ASP.NET Core Data Protection 不仅提供了非对称加密能力,而且提供了灵活的秘钥存储方式以及一致的加解密接口(Protect与Unprotect).Session中用到了它,C ...
- python 全栈开发,Day97(Token 认证的来龙去脉,DRF认证,DRF权限,DRF节流)
昨日内容回顾 1. 五个葫芦娃和三行代码 APIView(views.View) 1. 封装了Django的request - request.query_params --> 取URL中的参数 ...
- Spring Cloud中Feign如何统一设置验证token
代码地址:https://github.com/hbbliyong/springcloud.git 原理是通过每个微服务请求之前都从认证服务获取认证之后的token,然后将token放入到请求头中带过 ...
- Spring Security框架下Restful Token的验证方案
项目使用Restful的规范,权限内容的访问,考虑使用Token验证的权限解决方案. 验证方案(简要概括): 首先,用户需要登陆,成功登陆后返回一个Token串: 然后用户访问有权限的内容时需要上传T ...
- Spring Cloud OAuth2.0 微服务中配置 Jwt Token 签名/验证
关于 Jwt Token 的签名与安全性前面已经做了几篇介绍,在 IdentityServer4 中定义了 Jwt Token 与 Reference Token 两种验证方式(https://www ...
随机推荐
- 关于ie6出现的问题的原因归结
关于ie6出现的问题主要可以归结为以下几种情况把. 当然还存在各种原因,bug的情况也还有各种各样,我只是小结一下我自己经常遇到,比较有代表性的问题.会持续的更新. 1.浏览器本身存在的缺陷 比如: ...
- 简单xmlrpc服务器
import calendar, SimpleXMLRPCServer class Calendar: def getMonth(self, year, month): return calendar ...
- 自主移动机器人同时定位与地图创建(SLAM)方法概述
1.引言: 机器人的研究越来越多的得到关注和投入,随着计算机技术和人工智能的发展,智能自主移动机器人成为机器人领域的一个重要研究方向和研究热点.移动机器人的定位和地图创建是自主移动机器人领域的热点研究 ...
- Goroutines
Go 语言中的并发可以用两种方式实现: 第一种方式,支持顺序通信进程(communicating sequential processes),简称 CSP.CSP是一种现代的并发编程模型,在这种编程模 ...
- AngularJS基础02 神奇的数据绑定(Binding)
作者:arccosxy 转载请注明出处:http://www.cnblogs.com/arccosxy/ 上一节,我们在JS中声明一个scope变量然后在HTML直接访问它,这非常的酷.但是Angu ...
- J - Vertical Histogram(1.5.7)
J - Vertical Histogram(1.5.7) Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d &am ...
- Arm v8 中断处理
转 https://blog.csdn.net/firefox_1980/article/details/40113637
- js删除Array数组中的某个元素
Array.prototype.indexOf = function (val) { ; i < this.length; i++) { if (this[i] == val) return i ...
- easyui Dialog 去边框
使用Url页面显示 panel-body 的内容, 因页面高度大于iframe高度,右侧则会出现边框, 如果页面显示的内容高度真实大于iframe高度,那出现边框是很正常. 我的问题就是有内部页面 的 ...
- Could not write file: C:\......\.classpath
最近因为换操作系统,把项目从Mac系统copy到了win10下,出现了不少项目部署启动上的问题.最开始的一个问题是:Could not write file: C:\......\.classpath ...