node使用jwt来创建token和解析token

本文深入讲解了基于Token的身份验证机制,以及JSON Web Token (JWT) 的工作原理与应用。通过Node.js实例演示了JWT的创建过程,包括生成与解析Token的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:

  1. 客户端使用用户名跟密码请求登录
  2. 服务端收到请求,去验证用户名与密码
  3. 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
  4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
  5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
  6. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

二、JWT

JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。

JWT是由header(头部)payload(数据)signature(签名)三部分组成,中间用点分隔开,并且都会使用 Base64 编码。

如:

eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuaW5naGFvLm5ldCIsImV4cCI6IjE0Mzg5NTU0NDUiLCJuYW1lIjoid2FuZ2hhbyIsImFkbWluIjp0cnVlfQ.SwyHTEx_RQppr97g4J5lKXtabJecpejuef8AqKYMAJc

三、node实例来演示jwt创建token 

(1)建议一个文件夹

(2)用vs code打开该文件夹,在控制台执行npm init 

(3)安装依赖

npm install jsonwebtoken

(4) 引入依赖

const jwt = require('jsonwebtoken')

(5) 创建一个payload 对象,用来存储用户信息

let payload = {
    id:"134567",
    name:"zhangsan"
}

(6) 创建一个签名,即密钥

let seccret = "jwttoken"

(7) 生成token

let token = jwt.sign(payload,seccret,{
    expiresIn:"1h" ,   //到期时间7d(7天) 12h  120=120ms 提供三种单位
    issuer:"zzuly"     //发行人
})

(8) 运行

node token.js

(9) 结果

(10) 解析token

jwt.verify(token,seccret,(error,decoded)=>{
    if(error){
        console.log(error)
        return error
    }
    console.log("校验",decoded)
})

注意:校验失败和token过期都会在执行error。

(11) 效果

四、git地址

git clone https://gitee.com/laingyua/jwtToken.git

 

 

     

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值