权限管理

1.前言

  • 权限管理分为登录校验,模块权限分配等
  • 登录校验一般使用token进行校验
  • 权限分配一般使用角色组进行管理,按角色组设定权限,再与人员进行绑定

2.人员管理

  • 数据库新增一张表,包含id,username,nickname,phone, password等
  • 设置和校验密码时,前端先对其进行加密,后端存储和验证都
  • 用户登录时,使用mod5进行加密

3.token管理

  • 基本流程:登录成功后,根据用户id和过期信息来生成token,返回给前端。后面前端请求接口,则带上这个token,后端对token进行解析,拿到用户id和过期信息,过期和token无效都验证失败
  • 安装第三方库,jsonwebtoken
npm install jsonwebtoken
  • 校验流程和代码(除了对token本身进行解析,还需要多加一层控制,以便能在后端控制已经下发的token)
//token管理工具
var jwt = require('jsonwebtoken')
//密钥
var privateKey = "xxx"

//模拟登录信息
var loginData = {
    id: 1,
    password: "123456"
}

//模拟登录成功(校验密码环节省略)

//生成token返回(包含人员信息和过期信息)
var token = jwt.sign({
    userId: loginData.id,//人员id
    expires: 1737092833417,//过期时间,这里应该动态生成
}, privateKey)
//eyJhbGciOiJIUzI1NiJ9.MTIzNDU2.6j-7-PqBNNVHeOYuI5L4lmSX7rDudiuH-ejSWriUb1g
console.log(token)
//将token存到数据库,再后端添加控制
var tokenList = []
tokenList(token)


//后期请求接口,解析token
try {
    //从数据库中校验token是否存在
    if(tokenList.includes(token)){
        //解析token
        var decoded = jwt.verify(token, privateKey)
        // 拿到用户信息和过期时间 { userId: 1, expires: 1737092833417, iat: 1737092957 }
        console.log(decoded)
    }else{
        console.log('token校验失败')
    }
} catch (error) {
    //无效的token进入这里
    console.log('token校验失败')
}

来源链接:https://www.cnblogs.com/OrochiZ-/p/18676873

请登录后发表评论

    没有回复内容