Java Token是用戶認證和身份管理中常用的一種技術。Token是一種輕量級的身份驗證機制,在網絡應用中經常被用來保護資源,避免重復登錄等惡意攻擊。Java Token生成和驗證流程比較簡單,適用于需求不高的場合。
下面介紹Java Token生成和驗證的代碼:
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; public class JwtHelper { /** * 過期時間7天 */ private static final long EXPIRATION_TIME = 604800000; /** * secret */ private static final String SECRET = "jwt_secret_key"; /** * 生成token * * @param username * @return */ public static String generateToken(String username) { String token = Jwts.builder() .setSubject(username) .setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME)) .signWith(SignatureAlgorithm.HS512, SECRET) .compact(); return token; } /** * 驗證token * * @param token * @return */ public static boolean verifyToken(String token) { try { Claims claims = Jwts.parser().setSigningKey(SECRET).parseClaimsJws(token).getBody(); if (claims != null && !claims.isEmpty()) { return true; } } catch (Exception e) { e.printStackTrace(); } return false; } }
代碼中使用了第三方庫:io.jsonwebtoken,可以通過Maven或Gradle管理工具添加依賴。
具體代碼實現中,生成token時,首先指定了用戶名(也可以是其他用戶信息)即setSubject(username),然后設置過期時間和加密方式,最后調用compact()方法生成token字符串。
驗證token時,首先獲取token字符串中的claims信息,如果非空則返回true,否則返回false。
整個Java Token生成和驗證的過程就是這樣簡單粗暴。也正因為如此,這種簡單的驗證方式在一些小型項目或者是無需高安全要求的項目中使用還是比較方便的。