Nestjs-JWT

2024-03-05 16:44
文章标签 jwt nestjs

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

JSON Web Token

  1. 使用对称或非对称算法对数据进行加密,生成token返回客户端,客户端请求时将token发送给服务端,服务端对token进行校验解密。
  2. 构成:headers+payload+signtuare
    例如如下token:
    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InpodWFuZyIsInBhc3N3b3JkIjoiMTIzNDU2IiwiaWF0IjoxNzA5NjAwODg2LCJleHAiOjE3MDk2MDI2ODZ9.odLJNs9MFca7sqfFQn12QOF3jcG3X-mpWQ7S-zIWm44

header:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9是对{"alg":"HS256","typ":"JWT"}的base64编码。
payload: 同样也是经过base64编码
signature:对payload进行加密生成的签名。

如果客户端篡改了token,那么服务端使用同样的密钥(secret一般是对称解密HS256的密钥,publicKey是非对称解密RS256的公钥,privateKey是私钥,一般默认是对称解密secret)解密会失败,验证失效。

由于payload部分是可以通过base64解码的,所以payload不要存敏感信息,这里password只是举例子。

服务端解密token之后返回的payload会带上

在这里插入图片描述
3. 签发时的配置

const payload = this.jwtService.sign({username:'zhuang',password:"123456",
},{secret:'xxxxx',signOptions:{secret:"xxx",expiresIn: '30m',// 对应解密后的payload里的expsubject:"token",issuer:"zhuang",audience:'audience',notBefore:"7d",jwtid:""}
})

在这里插入图片描述

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



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

相关文章

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Python FastAPI实现JWT校验的完整指南

《PythonFastAPI实现JWT校验的完整指南》在现代Web开发中,构建安全的API接口是开发者必须面对的核心挑战之一,本文将深入探讨如何基于FastAPI实现JWT(JSONWebToken... 目录一、JWT认证的核心原理二、项目初始化与环境配置三、安全密码处理机制四、JWT令牌的生成与验证五、

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N

SpringSecurity JWT基于令牌的无状态认证实现

《SpringSecurityJWT基于令牌的无状态认证实现》SpringSecurity中实现基于JWT的无状态认证是一种常见的做法,本文就来介绍一下SpringSecurityJWT基于令牌的无... 目录引言一、JWT基本原理与结构二、Spring Security JWT依赖配置三、JWT令牌生成与

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

JWT详解:一种轻量级的身份验证和授权机制

引言 JSON Web Token(JWT)是一种基于JSON格式的开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息。JWT因其轻量级、可扩展性和安全性,在Web应用程序和RESTful API中得到了广泛应用。本文将详细解析JWT的概念、结构、工作原理、应用场景以及使用时的安全注意事项。 JWT的基本概念 JWT是一种用于在用户和服务器之间传递安全

JWT生成、解析token

目录 1. 导入JWT相关依赖2. JWT生成token3. JWT解析token4. 测试结果5. JWT加密、解密工具类 1. 导入JWT相关依赖 <!-- jwt认证模块--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-api</artifactId><version>0.10.2</

JSON Web Token 跨域认证 JWT

JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 3、服务器向用户返回一个 session_id,写入用户的 Cookie。 4、用户

0to1使用JWT实现登录认证

1 引言 JSON Web Token(缩写JWT)是目前流行的跨域认证解决方案,其本质上也是一种token,但是JWT通过纯算法验证合法性,因此无需在服务器存储token数据或者保存用户状态,降低了服务器消耗,也便于系统之间解耦。本章主要讲解使用JWT实现登录认证,并使用redis解决JWT无法主动失效的问题。 2 代码 下面列出关键代码进行介绍,源码链接在文章最后。 2.1 pom.x