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

相关文章

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Nginx实现高并发的项目实践

《Nginx实现高并发的项目实践》本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用最新稳定版本的Nginx合理配置工作进程(workers)配置工作进程连接数(worker_co