CNode

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

问答
Zzhongxia245发布于8 年前最后回复8 年前11 回复8132 浏览0 收藏

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

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

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

image.png

image.png

查看回复

回复 (11)

D
dbit-xia#1·8 年前

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

[CNodeMD]

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

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

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

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

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

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

H
hackboy#5·8 年前

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

H
HongYangHT#7·8 年前

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

S
SharksevenRo#8·8 年前

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

C
captainblue2013#9·8 年前

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

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

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

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