基于OAuth2查询在线用户及强退用户
场景
最近工作的项目需要做认证授权、限制授权登录用户。
需要统计当前在线用户数,及强退指定用户。
效果
实现
获取所有在线用户
登录后,OAuth2
会向Redis
存放用户的token
信息,键是token
值,值是OAuth2
的认证对象。
实现思路:从Redis
中获取所有的token
值,及通过RedisTokenStore
获取到OAuth2
的认证对象。
/**
* VO
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OnlineUserVo {
private String token;
private Long userId;
private String name;
private Date loginTime; //登陆时间
private Date expiration; //到期时间
private Integer expiresIn; //剩余时间
}
/**
* RedisTokenStore注入配置
*/
@Configuration
@EnableAuthorizationServer
public class TokenStoreConfig {
@Autowired
private RedisConnectionFactory redisConnectionFactory;
@Bean
public RedisTokenStore redisTokenStore() {
return new RedisTokenStore(redisConnectionFactory);
}
}
//redis存放token的键前缀,可以从RedisTokenStore源码中看到
public static final