在前面我们介绍了很多使用oauth进行用户登录相关的解决方案,这篇文章我们介绍下用户退出的功能。
其实退出非常的简单,我们只需要让用户携带对应的accesstoken过来,我们根据accesstoken去redis中查询对应的token信息即可,这里要注意两点:
1、退出的时候我们需要删除掉redis中的accesstoken。 2、退出的时候我们需要删除掉redis中accesstoken对应的refreshtoken
备注:
1、这里refreshtoken一定要删除掉,因为只删除了accesstoken的话,可以利用refreshtoken来刷新新的token,这样就达不到退出的效果了。
下面列举下退出的时候对应注销功能的核心代码:
/** * 这里主要是相当于注销登录的功能,把token从redis中给删除掉 * @param token */ private void logoutAccessToken(String token) throws Exception{ log.info("准备注销"); //读取相关token的信息 OAuth2AccessToken accessToken = tokenStore.readAccessToken(token); if(null != accessToken) { //注销掉用户的token tokenStore.removeAccessToken(accessToken); //获取用户的refreshtoken OAuth2RefreshToken refreshToken = accessToken.getRefreshToken(); //注销掉refreshtoken tokenStore.removeRefreshToken(refreshToken); log.info("注销成功"); } }
这里注销没太多解释的,最后按照惯例,附上本案例的源码,登录后即可下载。
还没有评论,来说两句吧...