leiwuhen-67's blog leiwuhen-67's blog
首页
    • 《Vue》笔记
    • 《React》笔记
    • 《NodeJs》笔记
    • 《CSS》笔记
    • 《Redis》笔记
    • 基础入门
    • 《Mock》笔记
    • 《MySQL》笔记
    • 《Git》相关
影音视听
收藏
关于
GitHub (opens new window)

我的公众号

首页
    • 《Vue》笔记
    • 《React》笔记
    • 《NodeJs》笔记
    • 《CSS》笔记
    • 《Redis》笔记
    • 基础入门
    • 《Mock》笔记
    • 《MySQL》笔记
    • 《Git》相关
影音视听
收藏
关于
GitHub (opens new window)
  • Express

  • Koa

    • koa应用搭建与路由配置
    • koa连接数据库
    • 用户认证之jsonwebtoken
  • Egg

  • Node相关

  • 《NodeJs》笔记
  • Koa
心欲无痕
2022-04-21

用户认证之jsonwebtoken

基本原理:
1、客户端试用账号和密码请求登录。
2、登录成功后服务器使用签名密钥生成jwt,并返回jwt给客户端。
3、客户端再次向服务端请求其他接口时,请求头须携带jwt。
4、服务器接收到jwt后验证签名是否有效,对客户端做出相应的响应。

1、安装 jsonwebtoken

npm install jsonwebtoken
1

2、引入 jsonwebtoken

const jwt = require('jsonwebtoken')
1

3、生成 token

例如:

let token = jwt.sign({
    name: '张三',
    password: '123456'
}, privatekey, {             // privatekey,即密钥
    expiresIn: 3600       // 表示token多久失效,如果是整数则表示多少秒后过期,此处表示1小时过期,也可以使用'1h'
})
1
2
3
4
5
6

4、验证 token

jwt.verify(token, privatekey, (err, data) => {
    if (err) {
        console.log('err')
    } else {
        /*
        data表示一个对象,解析后格式如:
        {
          user_name: '心欲无痕',
          password: '123456',
          iat: 1650526332,          // iat表示签发时间
          exp: 1650529932          // exp表示过期时间
        }
        */
        console.log('data', data)  // data是一个对象,
    }
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

ps:如果token解释失败或者已过期,都会返回err,只有正确解析出数据才会返回data。

编辑 (opens new window)
上次更新: 7/2/2024, 11:06:45 AM
koa连接数据库
使用脚手架快速初始化Egg项目

← koa连接数据库 使用脚手架快速初始化Egg项目→

Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式