这节主要讲用redis存储token,跟shiro基本上没有关系。
但是与是使用shiro做无状态管理所需要的。
一、token组成:
(1)在redis中存储 [key] tokens:UUID-key [value] usernamePasswordToken的JSON字符串 [expire] 过期时间
(2)在java中的数据模型
public class Token implements Serializable {
private static final long serialVersionUID = 4043470238789599973L;
private String token;
private Date expireTime;
public Token(String token, Date expireTime) {
super();
this.token = token;
this.expireTime = expireTime;
}
}
二、token管理
用户通过redis获取token对应的登录信息。
public interface TokenManager {
Token saveToken(UsernamePasswordToken token);
UsernamePasswordToken getToken(String key);
boolean deleteToken(String key);
}
实现类的具体方法:
(1)存储token
public Token saveToken(UsernamePasswordToken usernamePasswordToken) {
String key = UUID.randomUUID().to