JsonWebToken实践

2024-09-03 20:38
文章标签 实践 jsonwebtoken

本文主要是介绍JsonWebToken实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、客户端

(一)登录获取token 

(二)超时后报token过期

登录超时,路由从定向到登录页

二、服务端

(一) 登录接口颁发token

 (二)每个请求接口前,进行鉴权校验

1.鉴权

2.接口 

Python

import jwt# jwt密钥
JWT_SECRET = '04147af1e42c20c3b50bdc111774346e'# 编码
def encode(payload):return jwt.encode(payload, JWT_SECRET, algorithm='HS256')# 解码
def decode(string):return jwt.decode(string, JWT_SECRET, algorithms=['HS256'])# jwt 内数据(可自定义,一般放用户信息)
payload = {"nickname": "管理员","userName": "admin","exp": 9743118683,"userId": "2"
}print(encode(payload))

decode函数的15个代码示例

这些例子默认根据受欢迎程度排序

示例1: test_certs_dict

 def test_certs_dict(self):jwt.decode(firebase_token,firebase_certs,algorithms='RS256',options={'verify_exp': False, 'verify_aud': False})

项目名称:python-jose,代码行数:7,代码来源:test_firebase.py

示例2: test_individual_cert

 def test_individual_cert(self):jwt.decode(firebase_token,firebase_certs["f4b0a5c73ad85a5da09f0e7f76463631339e0bbf"],algorithms='RS256',options={'verify_exp': False, 'verify_aud': False})

项目名称:python-jose,代码行数:7,代码来源:test_firebase.py

示例3: test_certs_string

 def test_certs_string(self):certs = json.dumps(firebase_certs)jwt.decode(firebase_token,certs,algorithms='RS256',options={'verify_exp': False, 'verify_aud': False})

项目名称:python-jose,代码行数:8,代码来源:test_firebase.py

示例4: test_iss_tuple

    def test_iss_tuple(self, key):iss = 'issuer'claims = {'iss': iss}token = jwt.encode(claims, key)jwt.decode(token, key, issuer=('https://issuer', 'issuer'))

项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例5: test_iss_list

    def test_iss_list(self, key):iss = 'issuer'claims = {'iss': iss}token = jwt.encode(claims, key)jwt.decode(token, key, issuer=['https://issuer', 'issuer'])

项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例6: test_sub_correct

    def test_sub_correct(self, key):sub = 'subject'claims = {'sub': sub}token = jwt.encode(claims, key)jwt.decode(token, key, subject=sub)

项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例7: test_aud_string

    def test_aud_string(self, key):aud = 'audience'claims = {'aud': aud}token = jwt.encode(claims, key)jwt.decode(token, key, audience=aud)

项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例8: test_iat_not_int

    def test_iat_not_int(self, key):claims = {'iat': 'test'}token = jwt.encode(claims, key)with pytest.raises(JWTError):jwt.decode(token, key)

项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例9: test_aud_list_multiple

▲ 点赞 1 ▼

    def test_aud_list_multiple(self, key):aud = 'audience'claims = {'aud': [aud, 'another']}token = jwt.encode(claims, key)jwt.decode(token, key, audience=aud)

项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例10: test_iss_string

    def test_iss_string(self, key):iss = 'issuer'claims = {'iss': iss}token = jwt.encode(claims, key)jwt.decode(token, key, issuer=iss)

项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例11: test_nbf_datetime

    def test_nbf_datetime(self, key):nbf = datetime.utcnow() - timedelta(seconds=5)claims = {'nbf': nbf}token = jwt.encode(claims, key)jwt.decode(token, key)

开发者ID:0x64746b,项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例12: test_exp_datetime

    def test_exp_datetime(self, key):exp = datetime.utcnow() + timedelta(seconds=5)claims = {'exp': exp}token = jwt.encode(claims, key)jwt.decode(token, key)

开发者ID:0x64746b,项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例13: test_sub_string

    def test_sub_string(self, key):sub = 'subject'claims = {'sub': sub}token = jwt.encode(claims, key)jwt.decode(token, key)

开发者ID:0x64746b,项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例14: test_jti_string

    def test_jti_string(self, key):jti = 'JWT ID'claims = {'jti': jti}token = jwt.encode(claims, key)jwt.decode(token, key)

开发者ID:0x64746b,项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

示例15: test_aud_list

    def test_aud_list(self, key):aud = 'audience'claims = {'aud': [aud]}token = jwt.encode(claims, key)jwt.decode(token, key, audience=aud)

项目名称:python-jose,代码行数:10,代码来源:test_jwt.py

参考:

Python JWT 介绍和使用详解

这篇关于JsonWebToken实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133990

相关文章

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

Java Stream 的 Collectors.toMap高级应用与最佳实践

《JavaStream的Collectors.toMap高级应用与最佳实践》文章讲解JavaStreamAPI中Collectors.toMap的使用,涵盖基础语法、键冲突处理、自定义Map... 目录一、基础用法回顾二、处理键冲突三、自定义 Map 实现类型四、处理 null 值五、复杂值类型转换六、处理

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用