【学生管理系统】整合JWT(完)

目录

[5. 整合JWT](#5. 整合JWT)

[5.1 生成Token](#5.1 生成Token)

[5.2 携带Token](#5.2 携带Token)

[5.2.1 保存token](#5.2.1 保存token)

[5.2.2 携带token](#5.2.2 携带token)

[5.3 校验Token](#5.3 校验Token)

[5.4 获得Token](#5.4 获得Token)

5. 整合JWT

5.1 生成Token

  • 用户登录成功后,通过工具类,将用户信息转换成token

  • 步骤:

    • 拷贝工具类,及其Properties类

    • yml配置

    • 登录生成token

  • 拷贝工具类,及其Properties类

    • 注意:Swagger处理标准请求头,不再是X-Token

  • yml配置

  • 登录生成token

5.2 携带Token

5.2.1 保存token

  • 用户登录成功后,将token保存浏览器

  • 通过浏览器查看保存的数据

5.2.2 携带token

  • 对axios进行增强,需要每次都写到token

  • 步骤:

    1. 编写nuxt的插件

    2. 注册插件

  1. 编写nuxt的插件

    复制代码
    //https://axios.nuxtjs.org/helpers
    //https://axios.nuxtjs.org/extend
    export default function ({ $axios, redirect }) {
        $axios.onRequest(config => {
            // 从 localStorage 获得token,并添加到头
            let token = localStorage.getItem('token')
            if(token) {
                //Adds header: `Authorization: 123` to all requests
                $axios.setToken(token)
            }
        })
      
        $axios.onError(error => {
          const code = parseInt(error.response && error.response.status)
          if (code === 400) {
            redirect('/400')
          }
        })
    }
  2. 注册插件

    复制代码
    { src: '~/plugins/axios.js', mode: 'client' }
  • 测试:每次请求都携带token

5.3 校验Token

  • 在Gateway编写过滤器,注意:处理的请求头名字为Authorization

5.4 获得Token

复制代码
TbUser tbUser = JwtUtils.getObjectFromToken(token, jwtProperties.getPublicKey() , TbUser.class);
相关推荐
wuminyu1 小时前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
callJJ2 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
kyriewen3 小时前
代码写成一锅粥?3个设计模式让你的项目“起死回生”
前端·javascript·设计模式
不会敲代码13 小时前
从零搭建 AI 日记助手:用 Milvus 向量数据库实现语义搜索
javascript·openai
wbs_scy3 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言
threelab4 小时前
Three.js UV 图像变换效果 | 三维可视化 / AI 提示词
javascript·人工智能·uv
jinanwuhuaguo5 小时前
(第三十三篇)五月的文明奠基:OpenClaw 2026.5.2版本的文明级解读
android·java·开发语言·人工智能·github·拓扑学·openclaw
xmjd msup5 小时前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring
竹林8185 小时前
用Viem替代ethers.js:从一次签名失败到完整迁移的实战记录
前端·javascript
952366 小时前
SpringBoot统一功能处理
java·spring boot·后端