在前面我们一直都是演示使用oauth登录和信息拦截等信息,在真实环境中,还有一种需求就是用户退出功能。这个功能的使用频率比较高,这里我们解释下用户退出的模块。这里用户退出我们还是把他写到oauth服务里面,如下图:
退出的时候,核心代码就是删除token和删除refreshtoken,核心代码如下:
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("注销成功"); } }
这里我们主要是在oauth里面提供一个logout的接口,所以这里我们直接请求这个接口即可,但是我们直接请求这个接口会出现请求不到的情况,不信大家下载下之前的代码,请求下logout,是请求不了的,直接返回404了。
那么怎么办呢?其实主要就是配置白名单,需要在WebSecurityConfig这个文件里面,添加白名单即可:
此时我们再请求的时候,就可以正常进行注销了。
备注:
1、如果需要通过spring cloud gateway进行访问的话,我们还需要在gateway里面配置白名单。
最后按照惯例,附上本案例的源码,登录后即可下载。
还没有评论,来说两句吧...