IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 【若依vue框架学习】2.JWT的token/权限认证 -> 正文阅读

[JavaScript知识库]【若依vue框架学习】2.JWT的token/权限认证

前文提到了:提交loginForm(账号、密码、uuid、验证码)后,后端经过了验证,生成了token传送给前端。

那么后端怎么判断用户名密码是否正确?怎么判断角色的限权?JWT所生成的token是如何工作的?

本篇文章给出了不完全的解答。

返回的token在哪个过程中第一次看到?

login请求体:

login响应体:

?

返回的token由什么组成

返回的token:第一部分.第二部分.第三部分

第一部分,通过base64解码后发现:

{"alg":"HS512"}

第二部分,通过base64解码后发现:

{"login_user_key":"3ce288d6-4c10-4ed6-9399-34123860d084"}

第三部分,通过base64解码后发现:

乱码,是个签名

token在哪里存储

前端在发请求的过程中,用到了这个token:

如果使用postman发送GET请求到http://localhost:8080/system/menu/list

若不带有token,则系统不知道你有什么限权

若带有token,则系统会在Redis中查询你的限权

?

{
    "msg": "操作成功",
    "code": 200,
    "data": [
       ....
    ]
}

?后端在Redis中 也存储了这个token所对应的权限信息:

?

{
    "@type": "com.ruoyi.common.core.domain.model.LoginUser",
    "browser": "Firefox 10",
    "deptId": 103,
    "expireTime": 1656074264849,
    "ipaddr": "127.0.0.1",
    "loginLocation": "内网IP",
    "loginTime": 1656072464849,
    "os": "Windows 10",
    "permissions": Set[
        "*:*:*"
    ],
    "token": "3ce288d6-4c10-4ed6-9399-34123860d084",
    "user": {
        "admin": true,
        "avatar": "",
        "createBy": "admin",
        "createTime": 1656049805000,
        "delFlag": "0",
        "dept": {
            "ancestors": "0,100,101",
            "children": [
                
            ],
            "deptId": 103,
            "deptName": "研发部门",
            "leader": "若依",
            "orderNum": 1,
            "params": {
                "@type": "java.util.HashMap"
            },
            "parentId": 101,
            "status": "0"
        },
        "deptId": 103,
        "email": "ry@163.com",
        "loginDate": 1656061502000,
        "loginIp": "127.0.0.1",
        "nickName": "若依",
        "params": {
            "@type": "java.util.HashMap"
        },
        "password": "$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2",
        "phonenumber": "15888888888",
        "remark": "管理员",
        "roles": [
            {
                "admin": true,
                "dataScope": "1",
                "deptCheckStrictly": false,
                "flag": false,
                "menuCheckStrictly": false,
                "params": {
                    "@type": "java.util.HashMap"
                },
                "roleId": 1,
                "roleKey": "admin",
                "roleName": "超级管理员",
                "roleSort": "1",
                "status": "0"
            }
        ],
        "sex": "1",
        "status": "0",
        "userId": 1,
        "userName": "admin"
    },
    "userId": 1,
    "username": "admin"
}
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-26 16:49:40  更:2022-06-26 16:50:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:11:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码