SSO的目的就是实现单点登陆之后,所有授权的成员站点均可无须登陆即可访问,因此成员站点判断用户是否登陆是最重要的。
成员站点首先读取Cookie,取得当前的TicketID,然后从Passport Server获取这个ID对应的用户登陆信息,及其状态,并根据状态判断是否允许用户访问。
读取到的Cookie可以有几种情况:
(1)成员站点读取Cookie之后,如果发现没有Cookie存在则无法读取TicketID,并判断用户是否登陆,这时则需要从Passport Server取得该TicketID,这同样采用Cookie来传递。
(2)从Cookie取得TicketID后,到Passport验证发现该ID已经失效或者不存在,是否就应该让用户退出呢?要考虑这种情况,用户没有关闭浏览器,也没有从前一个用户正常退出,直接使用另外一个帐号从Passport Server登录,此时成员站点的Cooki仍然记录的是原来的ID。此时用这个ID验证发现已经无效,那么就需要获取新的ID,因此当发现ID已经失效或不存在与Passport Server的Cache中时应该当作第一中情况——Cookie不存在处理。
(3)当从Passport Server也取不到Cookie,那么则表明用户没有登陆,则转至登陆页面。
(4)当取到正确的TicketID之后,则通过Passport Server提供的接口获取相应的用户登陆状态及信息。 然后成员站点再作自己的一系列处理。
SSO的实现(2)——成员站点
最新推荐文章于 2023-11-21 19:58:59 发布
SSO旨在实现单点登录后授权成员站点免登录访问,成员站点判断用户登录状态很关键。其先读取Cookie获取TicketID,再从Passport Server获取对应信息和状态。针对读取Cookie的不同情况,如无Cookie、ID失效等,给出了相应处理办法。
3035

被折叠的 条评论
为什么被折叠?



