首页 > 编程语言 >python实现token签名认证

python实现token签名认证

时间:2024-08-23 11:50:30浏览次数:10  
标签:__ python SECRET 认证 token KEY itsdangerous 解析

当你注册了一个网站,通常,网站会向你的邮箱里发一封激活邮件,邮件里会有一个url,只有当你点击这个url,才能激活你的用户身份。
如何完成身份确认呢?通常,邮箱里的那个url里会有一个token,这个token是所有问题的关键,当你点击url,网站后台会受到这个请求,得到这个token,网站必须通过这个token找到你是谁。使用 itsdangerous 模块,可以轻松的生成临时身份令牌,也就是token。

 

1.pyhon3.x中安装itsdangerous 模块:
pip install itsdangerous

import time
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer

SECRET_KEY = 'owiernw365ertwet'        # 设置token的SECRET_KEY

# 生成token
def create_token():
    s = Serializer(SECRET_KEY, 3)                               # 设置token的过期时间是3秒钟
    data = s.dumps({'user_id': 343,'user_name':'admin123'})     # token携带了user_id和user_name这2个重要信息
    token = data.decode()
    print('生成的Token是: ',token)
    return token



# 解析token
# 解析token的时候也要使用SECRET_KEY,生成的token有效期是3秒,这里在解析前sleep 2秒钟,如果改为4秒钟,那么由于token已经过期,解析就会失败
def jx_token(token):
    time.sleep(2)
    serializer = Serializer(SECRET_KEY)
    try:
        data = serializer.loads(token)
        print('Token解析后是: ',data)
    except:
        print("Token解析失败,Token已经过期了")
  
    
if __name__ == '__main__':
    tokens  = create_token()
    jx_token(tokens)

 

标签:__,python,SECRET,认证,token,KEY,itsdangerous,解析
From: https://www.cnblogs.com/codtina/p/18375711

相关文章

  • Python解析DB URI
    数据库配置信息一般包含数据库类型、数据库服务器地址、端口号、用户名、密码、要链接的数据库,以及一些选项等,例如通常我们需要配置多个变量来完成整个配置,如db_type='mysql'host='localhost'port=3306user='root'password='passw0rd'db='testdb'charset='u......
  • 用Python实现9大回归算法详解——09. 决策树回归算法
    1.决策树回归的基本概念决策树回归(DecisionTreeRegression)是一种树状结构的回归模型,通过对数据集进行递归分割,将数据分成更小的子集,并在每个子集上进行简单的线性回归。决策树的核心思想是通过选择特征及其阈值来最大化每次分裂后的目标函数增益,从而找到使误差最小化的模型......
  • Python下载安装全流程(Python 最新版本),新手小白必看!
    第一次接触Python,可能是爬虫或者是信息AI开发的小朋友,都说Python语言简单,那么多学一些总是有好处的,下面从一个完全不懂的Python的小白来安装Python等一系列工作的记录,并且遇到的问题也会写出,让完全不懂的小白也可上手安装,并且完成第一个Helloworld代码。需要安装包......
  • python socket编辑示例 UDP
    服务端:fromsocketimportsocket,AF_INET,SOCK_DGRAMrecv_socket=socket(AF_INET,SOCK_DGRAM)recv_socket.bind(('127.0.0.1',8888))whileTrue:data,addr=recv_socket.recvfrom(1024)#接收数据print('客户说:',data.decode('......
  • Python3测试mysql插入数据代码(chatgpt生成)
      实现的功能:先连接mysql数据库,然后读取某个目录所有以txt文件命名后缀的json内容文件,解析出对应的key和value,然后插入数据到mysql数据库,最后关闭数据库连接 importosimportjsonimportpymysqlimportre"""尝试插入json文件到MySQL数据库。dbInfo:MySQL数据库......
  • 零基础学习人工智能—Python—Pytorch学习(八)
    前言本文介绍卷积神经网络的上半部分。其实,学习还是需要老师的,因为我自己写文章的时候,就会想当然,比如下面的滑动窗口,我就会想当然的认为所有人都能理解,而实际上,我们在学习的过程中之所以卡顿的点多,就是因为学习资源中想当然的地方太多了。概念卷积神经网络,简称CNN,即Convoluti......
  • Python-批量统计MySQL中表的数据量
    背景在数据中台中,有时为了核对数据,需要每天批量统计MySQL数据库中表的数据量,但是DMS中没有周期调度功能。MySQL创建表--统计的表清单CREATETABLE`dws_table_list`(`table_name`varchar(255)DEFAULTNULL,`flag`varchar(255)DEFAULTNULL);--每天的数据量CRE......
  • python socket编辑示例
    服务端代码:fromsocketimportsocket,AF_INET,SOCK_STREAM#1.创建socket对象AF_INET:用于internet之间的进程通信,SOCK_STREAM:表示TCP协议server_socket=socket(AF_INET,SOCK_STREAM)#2.绑定ip和端口号ip='127.0.0.1'port=8888server_socket.bind((ip,p......
  • 基于Python flask的图书借阅管理系统的设计与实现
    基于PythonFlask的图书借阅管理系统旨在为图书馆或类似机构提供一个高效、便捷的管理平台,覆盖图书借阅的各个环节,帮助管理员和读者更好地管理和使用图书资源。该系统采用Python编程语言和Flask框架进行开发,结合了数据库管理、用户认证、数据可视化等技术,确保系统的功能完备和......
  • python-jose 实现fastapi登录验证
    JWT和Session的区别:JWT:JWT是一种无状态的认证机制。由于JWT令牌包含了用户的身份信息以及相关的元数据,服务端不需要存储任何用户状态信息,只需要验证JWT令牌的真实性和有效性即可。这使得JWT非常适合于构建无状态的分布式系统,因为JWT令牌可以在不同的服务之间轻松共享。Sessio......