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

相关文章

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot 常用注解详解与使用最佳实践建议

《SpringBoot常用注解详解与使用最佳实践建议》:本文主要介绍SpringBoot常用注解详解与使用最佳实践建议,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、核心启动注解1. @SpringBootApplication2. @EnableAutoConfi

Redis实现分布式锁全解析之从原理到实践过程

《Redis实现分布式锁全解析之从原理到实践过程》:本文主要介绍Redis实现分布式锁全解析之从原理到实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景介绍二、解决方案(一)使用 SETNX 命令(二)设置锁的过期时间(三)解决锁的误删问题(四)Re

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

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

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

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

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