token 怎么用
时间: 2023-07-03 21:15:47 浏览: 164
Token通常用于用户身份验证和授权,常见的Token类型有JWT(JSON Web Token)和OAuth2 Token。下面以JWT Token为例,介绍Token的使用步骤。
1. 生成Token
生成Token需要使用JWT库,可以使用第三方库,如jjwt、Nimbus JOSE + JWT、Auth0等。以下是使用jjwt生成Token的示例代码:
```java
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
String token = Jwts.builder()
.setSubject("user_id")
.setExpiration(new Date(System.currentTimeMillis() + 3600000))
.signWith(SignatureAlgorithm.HS512, "secret")
.compact();
```
2. 验证Token
验证Token需要使用相同的JWT库,可以使用第三方库,如jjwt、Nimbus JOSE + JWT、Auth0等。以下是使用jjwt验证Token的示例代码:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
try {
Claims claims = Jwts.parser()
.setSigningKey("secret")
.parseClaimsJws(token)
.getBody();
String userId = claims.getSubject();
Date expirationDate = claims.getExpiration();
} catch (Exception e) {
// Token无效,抛出异常
}
```
3. 将Token保存在客户端
将Token保存在客户端需要使用Cookie或者LocalStorage等客户端存储技术。以下是使用Cookie保存Token的示例代码:
```java
Cookie cookie = new Cookie("token", token);
cookie.setMaxAge(3600);
response.addCookie(cookie);
```
4. 从客户端读取Token
从客户端读取Token需要使用Cookie或者LocalStorage等客户端存储技术。以下是使用Cookie读取Token的示例代码:
```java
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("token".equals(cookie.getName())) {
String token = cookie.getValue();
// 验证Token
break;
}
}
}
```
以上是Token的使用步骤,需要注意的是,生成Token时,应该使用安全的加密算法和密钥,以保证Token的安全性。同时,应该在Token中包含足够的信息,以便在验证时可以获取到相关的信息。
阅读全文