你真的了解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);
}
);
總結
以上是生活随笔為你收集整理的你真的了解token续期嘛?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java jdom解析xml文件带冒号的
- 下一篇: “选择性粘贴为无格式文本”(Paste