请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

上个课程遗留问题

上个课程我问了两个问题说这个课程会有提及
1.多个系统使用不同的登陆页面,回答是本次课程会讲,看课程目录似乎没有这部分内容?
2.若多个系统使用sso登陆,如何同时退出的问题。给的答案是退出一个系统时循环退出所有系统。
对这个答案不满意。本身我不知道一共有多少个系统接入了sso,另外我也不知道多少的系统接入并且在同一个浏览器登陆过。第四章课程中只退出了admin和aouth两个系统,可能还有其他系统中没有退出,若我用不同的用户登陆admin 就会取到不同的登陆人(另外一个客户端的session还没过期,仍然是登陆状态)

麻烦老师给个方案,这俩问题困扰我很久依然没有解决

正在回答

1回答

  1. 把认证服务器的登录页面配置到一个Controller方法上,在那个方法里通过HttpSessionRequestCache拿到跳转到登录页之前的那个请求,也就是/oauth/authorize请求(具体写法可以参见SavedRequestAwareAuthenticationSuccessHandler),这个请求的参数上应该有clientId,根据不同的clientId再跳到不同的页面。

  2. 可以用课程第五章最后讲的无session的方式来实现SSO,这样删除cookie的token时,所有的客户端就都退出了。

0 回复 有任何疑惑可以回复我~
  • 提问者 破地瓜 #1
    方案1 我稍后试一下
    方案2 这种方式我也想过,但是实际开发中 也没有域名(内部管理系统) 真实的客户端ip或者域名我也不清楚;
    回复 有任何疑惑可以回复我~ 2019-09-17 10:54:25
  • 提问者 破地瓜 #2
    方案一已经测试 可行
    回复 有任何疑惑可以回复我~ 2019-09-19 11:33:34
  • 提问者 破地瓜 #3
    问题2 确实没有找到简单又优雅的办法; 本地环境先用循环退出  生产环境应该不存在这个问题 生产环境是同一个域名或者IP 端口 有session共享
    回复 有任何疑惑可以回复我~ 2019-09-19 20:20:22
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信