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

相关文章

Golang实现基于角色的访问控制(RBAC)的项目实践

《Golang实现基于角色的访问控制(RBAC)的项目实践》基于角色的访问控制(RBAC)是一种安全机制,通过角色来管理用户权限,本文介绍了一种可落地、易扩展的GolangRBAC实现方案,具有一定... 目录一、RBAC 核心模型设计二、RBAC 核心逻辑实现RBAC 管理器定义基础 CRUD:添加用户

Spring Boot 2.7.8 集成 Thymeleaf的最佳实践与常见问题讨论

《SpringBoot2.7.8集成Thymeleaf的最佳实践与常见问题讨论》本文详细介绍了如何将SpringBoot2.7.8与Thymeleaf集成,从项目依赖到配置文件设置,再到控制器... 目录前言一、如何构建SpringBoot应用1、项目依赖 (pom.XML)2、控制器类3、Thymelea

jdk1.8的Jenkins安装配置实践

《jdk1.8的Jenkins安装配置实践》Jenkins是一款流行的开源持续集成工具,支持自动构建、测试和部署,通过Jenkins,开发团队可以实现代码提交后自动进行构建、测试,并将构建结果分发到测... 目录Jenkins介绍Jenkins环境搭建Jenkins安装配置Jenkins插件安装Git安装配

SpringBoot的全局异常拦截实践过程

《SpringBoot的全局异常拦截实践过程》SpringBoot中使用@ControllerAdvice和@ExceptionHandler实现全局异常拦截,@RestControllerAdvic... 目录@RestControllerAdvice@ResponseStatus(...)@Except

mysql_mcp_server部署及应用实践案例

《mysql_mcp_server部署及应用实践案例》文章介绍了在CentOS7.5环境下部署MySQL_mcp_server的步骤,包括服务安装、配置和启动,还提供了一个基于Dify工作流的应用案例... 目录mysql_mcp_server部署及应用案例1. 服务安装1.1. 下载源码1.2. 创建独立

SpringBoot简单整合ElasticSearch实践

《SpringBoot简单整合ElasticSearch实践》Elasticsearch支持结构化和非结构化数据检索,通过索引创建和倒排索引文档,提高搜索效率,它基于Lucene封装,分为索引库、类型... 目录一:ElasticSearch支持对结构化和非结构化的数据进行检索二:ES的核心概念Index:

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

MySQL存储过程实践(in、out、inout)

《MySQL存储过程实践(in、out、inout)》文章介绍了数据库中的存储过程,包括其定义、优缺点、性能调校与撰写,以及创建和调用方法,还详细说明了存储过程的参数类型,包括IN、OUT和INOUT... 目录简述存储过程存储过程的优缺点优点缺点存储过程的创建和调用mysql 存储过程中的关键语法案例存储

Java 的ArrayList集合底层实现与最佳实践

《Java的ArrayList集合底层实现与最佳实践》本文主要介绍了Java的ArrayList集合类的核心概念、底层实现、关键成员变量、初始化机制、容量演变、扩容机制、性能分析、核心方法源码解析、... 目录1. 核心概念与底层实现1.1 ArrayList 的本质1.1.1 底层数据结构JDK 1.7