0
点赞
收藏
分享

微信扫一扫

《果然新鲜》电商项目(40)- SSO单点登录(退出功能)


文章目录

  • ​​1. 效果演示​​
  • ​​2.退出功能实现​​
  • ​​总结​​

1. 效果演示

首先启动Eureka注册中心、SSO服务、会员服务、门户服务、聚合支付服务
《果然新鲜》电商项目(40)- SSO单点登录(退出功能)_json
登录门户,浏览器输入http://guoranxinxian.com:8080,登录成功。
《果然新鲜》电商项目(40)- SSO单点登录(退出功能)_前端_02
访问聚合支付门户,浏览器输入:http://guoranxinxian.pay.com:8079/,可以看到没走登录直接就进入了。
《果然新鲜》电商项目(40)- SSO单点登录(退出功能)_spring boot_03
好的,可以看退出效果的演示了,在门户首页点击退出
《果然新鲜》电商项目(40)- SSO单点登录(退出功能)_spring boot_04
点击后,自动跳转到了登录页了:
《果然新鲜》电商项目(40)- SSO单点登录(退出功能)_java_05

刷新聚合支付页面,可以看到也自动跳转到了登录页面了:
《果然新鲜》电商项目(40)- SSO单点登录(退出功能)_spring boot_06

从上面演示效果可以看出:一端退出,所有端都退出。

2.退出功能实现

前端代码(核心代码):

<script type="text/javascript">
function logout() {
$.ajax({
type: "delete",
//url: "exit",
url: "ssoExit",
contentType: "application/json",
dataType: "json",
success: function (result) {
window.location.href = "/";
},
error: function (result) {
}
});
}
</script>

Controller层代码:

@DeleteMapping("/ssoExit")
@ResponseBody
public BaseResponse<JSONObject> logout(HttpServletRequest request, HttpServletResponse response, Model model) {

// logout
BaseResponse<JSONObject> result = null;
XxlSsoUser xxlUser = (XxlSsoUser) request.getAttribute(Conf.SSO_USER);
SsoWebLoginHelper.logout(request, response);
if (xxlUser != null && StringUtils.isNotEmpty(xxlUser.getUserid())) {
result = memberLogoutServiceFeign.ssoLogout(xxlUser.getUserid());
}
return result;
}

会员服务退出数据库操作:

/**
* 用户登出接口
*
* @param token
* @return
*/
@DeleteMapping("/ssoLogout")
@ApiOperation(value = "/ssoLogout")
BaseResponse<JSONObject> ssoLogout(@RequestParam("token") String token);
@Override
@Transactional
public BaseResponse<JSONObject> ssoLogout(String token) {
int updateTokenAvailability = userTokenMapper.updateTokenAvailability(token);
if (updateTokenAvailability < 0) {
return setResultError("系统错误");
}
JSONObject data = new JSONObject();
data.put("result", true);
return setResultSuccess(data);
}

退出成功后,可以看到浏览器Cookie信息为空,Redis保存的内容也移除了,数据库更新为未登录。

Cookie
《果然新鲜》电商项目(40)- SSO单点登录(退出功能)_json_07

Redis
《果然新鲜》电商项目(40)- SSO单点登录(退出功能)_spring boot_08

数据库
《果然新鲜》电商项目(40)- SSO单点登录(退出功能)_java_09

总结

本文主要讲解SSO单点退出的功能。


举报

相关推荐

0 条评论