上个课程遗留问题
来源:5-12 实现基于token的SSO(2)
破地瓜
2019-09-17
上个课程我问了两个问题说这个课程会有提及
1.多个系统使用不同的登陆页面,回答是本次课程会讲,看课程目录似乎没有这部分内容?
2.若多个系统使用sso登陆,如何同时退出的问题。给的答案是退出一个系统时循环退出所有系统。
对这个答案不满意。本身我不知道一共有多少个系统接入了sso,另外我也不知道多少的系统接入并且在同一个浏览器登陆过。第四章课程中只退出了admin和aouth两个系统,可能还有其他系统中没有退出,若我用不同的用户登陆admin 就会取到不同的登陆人(另外一个客户端的session还没过期,仍然是登陆状态)
麻烦老师给个方案,这俩问题困扰我很久依然没有解决
写回答
1回答
-
把认证服务器的登录页面配置到一个Controller方法上,在那个方法里通过HttpSessionRequestCache拿到跳转到登录页之前的那个请求,也就是/oauth/authorize请求(具体写法可以参见SavedRequestAwareAuthenticationSuccessHandler),这个请求的参数上应该有clientId,根据不同的clientId再跳到不同的页面。
可以用课程第五章最后讲的无session的方式来实现SSO,这样删除cookie的token时,所有的客户端就都退出了。
032019-09-19
相似问题