- 需求:账户登录互踢(同一账号只能一个用户登录使用)
- 原理:spring security oauth2 实现账户登录互踢-账号登录时,获取token,同时将用户名和对应token保存,每次登陆时,将该用户名的token从redis移除即可;
- 代码实现
String username = (String) response.get("username");
String token = (String) response.get("access_token");
if (StringUtils.isNotBlank(username)){
String lastToken = (String) redisUtils.get(TOKEN_USER_KEY + username);
boolean tokenFlag = redisUtils.hasKey("access:" + lastToken);
if (tokenFlag){
oAuthClient.removeToken(lastToken);
}
redisUtils.set(TOKEN_USER_KEY + username,token);
}