Skip to content

Auth

JWT

生成密钥

sh
node -e "console.log(require('crypto').randomBytes(32).toString('hex'));"
sh
npm install jsonwebtoken

签名 token

ts
import jwt from 'jsonwebtoken'

const SECRET = process.env.SECRET

export function signToken(payload: string | object) {
  return jwt.sign(payload, SECRET)
}

export function verifyToken(token: string) {
  return jwt.verify(token, SECRET)
}

用户名/密码

json
{
  "login": "18159657969",
  "password": "JN94tEO93",
  "loginType": "password"
}
json
{
  "username": "admin",
  "password": "ant.design",
  "autoLogin": true,
  "type": "account"
}

密码效验

ts
import bcrypt from 'bcryptjs'

export async function hashPassword(plainPassword: string) {
  return bcrypt.hash(plainPassword, 10)
}

export function verifyPassword(plainPassword: string, hash: string) {
  return bcrypt.compare(plainPassword, hash)
}

手机号/验证码登录

json
{
  "autoLogin": true,
  "mobile": "18159556969",
  "captcha": "1234",
  "type": "mobile"
}
  1. 发送短信验证码
  2. 验证手机号和短信验证码

参考

nuxt3-auth-example微信授权next-auth