npm install jsonwebtoken jwt-iat bcrypt --save
const { sign } = require('jsonwebtoken') const jwtIat = require("jwt-iat") const bcrypt = require("bcrypt")
// 创建 JWT 令牌 const createToken = (user) => { const iat = jwtIat.get() // 获取当前时间戳 const expiresIn = 3600 // 令牌过期时间(单位:秒) const payload = { sub: user._id, iat, exp: iat + expiresIn, name: user.name, email: user.email } const token = sign(payload, "secret_key") // 密钥(可以通过 env 获取,在生产环境中最好不要存储在代码中) return { payload, token, expiresIn } // 返回 JWT 令牌、载荷和过期时间 }
// 创建刷新令牌 const createRefreshToken = () => { const token = bcrypt.hashSync(Date.now().toString(), 10) // 将当前时间戳通过 bcrypt 进行哈希,返回密文字符串 // 将密文字符串存储在服务器端的数据库中 return token }