首页 > 其他分享 >你真的了解token续期嘛?

你真的了解token续期嘛?

时间:2024-01-17 11:33:25浏览次数:26  
标签:username Vue return String Token token 续期 真的

Spring Boot + Vue中的Token续签机制

在现代的全栈应用开发中,Spring Boot作为后端框架和Vue.js作为前端框架的组合非常流行。在这种架构中实现Token续签是保障应用安全的关键部分。本文旨在提供一个基于Spring Boot和Vue的长短Token续签示例。

1. Spring Boot后端

1.1 长Token的生成

在Spring Boot中,我们首先需要一个方法来生成JWT Token。这里我们使用jjwt库。

引入依赖

pom.xml文件中加入以下依赖:

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>

生成Token

创建一个服务JwtTokenService来生成和解析Token。

import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;

@Service
public class JwtTokenService {

    private String secretKey = "your_secret_key";

    public String generateLongToken(String username) {
        long expiration = 7 * 24 * 60 * 60 * 1000; // 7 days
        return Jwts.builder()
                .setSubject(username)
                .setExpiration(new Date(System.currentTimeMillis() + expiration))
                .signWith(SignatureAlgorithm.HS256, secretKey)
                .compact();
    }

    // ... 其他方法 ...
}

1.2 短Token的生成

短Token的生成方式类似,只是过期时间较短。

public String generateShortToken(String username) {
    long expiration = 15 * 60 * 1000; // 15 minutes
    return Jwts.builder()
            .setSubject(username)
            .setExpiration(new Date(System.currentTimeMillis() + expiration))
            .signWith(SignatureAlgorithm.HS256, secretKey)
            .compact();
}

1.3 Token续签

当用户进行操作时,可以根据需要续签Token。

public String renewToken(String oldToken) {
    // 解析旧Token获取用户名
    String username = Jwts.parser()
            .setSigningKey(secretKey)
            .parseClaimsJws(oldToken)
            .getBody()
            .getSubject();

    // 生成新的短Token
    return generateShortToken(username);
}

2. Vue前端

在Vue应用中,我们需要确保每次发送请求时附加Token,并在需要时更新Token。

2.1 设置Axios拦截器

在Vue项目中,我们使用Axios来发送HTTP请求。通过设置拦截器,我们可以在每个请求中自动添加Token。

import axios from 'axios';

axios.interceptors.request.use(
    config => {
        const token = localStorage.getItem('token');
        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

标签:username,Vue,return,String,Token,token,续期,真的
From: https://www.cnblogs.com/lyxlucky/p/17969615

相关文章

  • Spring Boot 使用 拦截器 实现 token 验证
    SpringBoot使用拦截器实现token验证整体思路:1.写一个工具类封装生成、校验和解析token的方法;2.在注册和登录时生成token,生成的token存入redis,下次登录去redis获取,如果存在则直接返回通过3.在拦截器中校验和解析token,拿到token中有用的信息存入privatestati......
  • 虚函数:什么时候我们真的需要它?
    虚函数是函数指针的一种特殊的,可优化的语法糖,详见这个问题:https://stackoverflow.com/q/7046739/14033810作为语法糖,它所做的让语言更简单,更安全的改进是限制了函数调用的范围。函数指针不再指向每一个类型匹配的函数(或任一个函数,如果bypassC的类型检查),而是被限制在只能调用一个......
  • ThreadLocal真的会造成内存泄漏吗?
    ThreadLoca在并发场景中,应用非常多。那ThreadLocal是不是真的会造成内存泄漏?今天给大家做一个分享,个人见解,仅供参考。1、ThreadLocal的基本原理简单介绍一下ThreadLocal,在多线程并发访问同一个共享变量的情况下,如果不做同步控制的话,就可能会导致数据不一致的问题,所以,我们需要使......
  • 【转载】淘宝爬虫sign、token详解
    【转载】淘宝爬虫sign、token详解淘宝对于h5的访问采用了和客户端不同的方式,由于在h5的js代码中保存appsercret具有较高的风险,mtop采用了随机分配令牌的方式,为每个访问端分配一个token,保存在用户的cookie中,通过cookie带回服务端分配的token,客户端利用分配的token对请求的URL参......
  • rancher集群获取k8s的token
    一、概述在使用Kubernetes(简称K8S)集群进行容器编排时,我们需要使用Token来进行身份认证和访问控制。Rancher是一个开源的容器管理平台,可以帮助我们快速构建和管理K8S集群。本文将介绍如何在Rancher集群中获取K8S的Token。二、步骤概览下表展示了获取K8SToken的步骤概览:步骤操作1登......
  • rancher集群获取k8s的token
    你好,新入行的小伙伴!欢迎来到K8S的世界。今天,我将带你了解如何在Rancher集群中获取Kubernetes(K8s)的Token。这个过程可能会有些复杂,但别担心,我会尽可能地详细解释每一步。一、了解整体流程在开始之前,我们先大致了解一下整个流程。以下是获取KubernetesToken的基本步骤:登录到Rancher......
  • (token,Spring Security)
    认证:让服务器认识客户端之前使用session记录登录用户的信息,之后每次请求都验证session对象中是否有登录用户的信息(Filter)token认证:用户登录成功,服务端会给这个客户端(浏览器)签发一个token(字符串),客户端接收到这个token,存入到容器中(sessionStorage或者是LocalStorage),浏览器每次访......
  • 这个系统或许真的可以成为国产版CentOS!
    大家好,我是民工哥!互联网发展到今天,它的强大之处不言而喻。多年之前,谁也不会想到,有一天,你可以不出门在家动动手指,你可以买到来自世界各地的商品,同样你只需打开一个APP或网页就可以知道当前世界已发生或正在发生的事。但是,如果说:没有操作系统会怎么样?对于个PC来说,无论是台式机......
  • 盲目的崇拜西方真的好吗——曾经有资格成为院士的顶级学者成为了流浪美国街头的流浪汉
    相关:https://mbd.baidu.com/newspage/data/dtlandingwise?sourceFrom=ganyu&nid=dt_4752065470757088451这位留美的博士,在当年读博所获得的学术成果可以称为是国内的顶级学者了,在国内其学术成果在当时的那个年代基本就是妥妥的院士候选了,不过令人唏嘘的是这位本能成为院士的顶......
  • 记录--前端无感知刷新token & 超时自动退出
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前端无感知刷新token&超时自动退出一、token的作用因为http请求是无状态的,是一次性的,请求之间没有任何关系,服务端无法知道请求者的身份,所以需要鉴权,来验证当前用户是否有访问系统的权限。以oauth2.0授权码模式为......