权限管理

1.前言

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

2.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校验失败')
}
posted @   ---空白---  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
历史上的今天:
2022-01-17 Vue第三方插件
点击右上角即可分享
微信分享提示