跳到主要内容
CNode

关于 SSO 单点注销, SSO如何通知子系统清除凭证?

问答
Zzhongxia245发布于 8 年前最后回复 8 年前
1181350

子系统的注销按钮,是跳转到 SSO 的注销接口地址, 然后 SSO 清除cookie,然后 通知(发送 http 请求)给子系统清除 session。

但是当重新刷新子系统页面的时候,session 还是存在的, 尴尬,

注销的代码如下, 求大佬指教

image.png

image.png

查看回复

回复 (11)

D
dbit-xia#18 年前

会话应该是保存在浏览器cookie里的,要从前端请求子系统和SSO的退出

[CNodeMD]

Z
zhongxia245#28 年前
引用 dbit-xia会话应该是保存在浏览器cookie里的,要从前端请求子系统和SSO的退出 [CNodeMD]

@dbit-xia 比如有三个子系统,那么 SSO 服务器注销就需要跳转分别跳转三个子系统去注销,这样理解对吗?

P
puzzle9#38 年前
引用 zhongxia245@dbit xia 比如有三个子系统,那么 SSO 服务器注销就需要跳转分别跳转三个子系统去注销,这样理解对吗?

@zhongxia245 这个 直接在sso服务器注销就可以 其他站点在判断下有没有那个sso 的 cookie

Z
zhongxia245#48 年前
引用 puzzle9@zhongxia245 这个 直接在sso服务器注销就可以 其他站点在判断下有没有那个sso 的 cookie

@puzzle9 sso 不在一个域名下, 拿不到 sso 的 cookie 的 后面解决了,子系统把 登录的 session 存在 数据库或者 redis 里面, 然后 sso 注销后,通知子系统去注销相对应的 session

H
hackboy#58 年前

我们实现的sso系统做单点退出原理就是在用户中心退出时分别通知各个子系统 子系统负责自身的退出逻辑即可

H
HongYangHT#78 年前

https://oauth.net/2/ 解决你的问题,

S
SharksevenRo#88 年前

主系统提供用cookie换用户信息和验证的接口。 子站每次刷新去请求主站接口。根据接口的返回,子站维护一个属于自己的session。

C
captainblue2013#98 年前

有时候答案不是唯一的,看你的业务 需求,如果你需要你的子系统跟主系统绝对同步,那原则上你每个子系统请求都要去主系统check一下,

Z
zhongxia245#108 年前
引用 HongYangHThttps://oauth.net/2/ 解决你的问题,

@HongYangHT 刚开始实现的时候没有用这个,换这个的话就需要重写了哈,

参与回复

登录后即可参与回复。登录