[英]Spring Boot JWT Authentication: trigger a method after login and logout
[英]How can logout using spring boot jwt
I am using this example https://dzone.com/articles/spring-boot-security-json-web-tokenjwt-hello-world for creating spring boot rest api with json web token (JWT). 但我沒有找到任何 api 使用 io.jsonwebtoken maven 依賴項強制注銷。
我在 pom 中使用這個依賴:
groupId io.jsonwebtoken artifactId jjwt version 0.9.1
任何人都可以告訴我這種依賴關系,是否提供任何注銷或撤銷令牌 api。 如果沒有,請提供使用此過程強制注銷的任何解決方案。
注銷可以做幾件事:
window.sessionStorage.removeItem("token") // 用於 session 存儲
或者
window.localstorage.removeItem("token") // 用於本地存儲
參考他們: https://developer.mozilla.org/ru/docs/Web/API/Window/sessionStorage https://developer.mozilla.org/ru/docs/Web/API/Window/localStorage
我在 angular 中的示例: https://github.com/dmcheremisin/TodoApp/blob/master/frontend/src/app/service/jwt-authentication.service.ts
如果您需要允許進一步使用令牌 - 您刷新它,否則拒絕。
示例刷新方法:
public String refreshToken(String token) {
final Date createdDate = new Date();
final Date expirationDate = calculateExpirationDate(createdDate);
final Claims claims = getAllClaimsFromToken(token);
claims.setIssuedAt(createdDate);
claims.setExpiration(expirationDate);
return Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, secret).compact();
}
此代碼片段來自我使用相同庫 jjwt 的存儲庫: https://github.com/dmcheremisin/TodoApp/blob/master/backend/src/main/java/com/todo/app/util/JwtTokenUtil.Z93F725A07423FE1C889F448B33D21F46
相關文章: https://medium.com/devgorilla/how-to-log-out-when-using-jwt-a8c7823e8a6
我相信代幣有有效期。 您可以簡單地縮短到期時間,這樣如果令牌被黑客入侵,那么它在到期后就沒有用了
我們可以通過更改密鑰來實現這一點。 通常我們為所有用戶維護一個密鑰,因此如果我們更改密鑰,它將撤銷所有用戶的訪問權限。 我們可以為每個用戶維護唯一的密鑰,並且根據注銷的請求,我們可以刪除/更改使用關聯的密鑰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.