如何实现一个方便第三方系统对接的单点登录解决方案?不是那种授权的单点登录,而是像登录了 Google 就自动登录了油管的那种单点登录方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
qwerthhusn
V2EX    程序员

如何实现一个方便第三方系统对接的单点登录解决方案?不是那种授权的单点登录,而是像登录了 Google 就自动登录了油管的那种单点登方案

  •  1
     
  •   qwerthhusn 2021 年 4 月 8 日 1342 次点击
    这是一个创建于 1753 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们要做一个系统,然后需要把用户部分抽离出来,后续会有第三方系统接入,可以直接像登录 Google,Gmail,Youtube 这些网站都已经登录上的那种效果,而不是像第三方授权的那种方式!

    首先 CAS 被排除了,因为不知道第三方系统用的什么语言架构,感觉 CAS 跟 Java 绑定的比较死。。(我需要出个文档以便后面的系统直接接入)

    然后是 OAuth2,我发现这种所谓的单点登录跟我想象中的单点登录不一样,这种是你需要授权的。比如使用 Github 登录 StackOverflow 。实际上是 Stackoverflow 上新建了一个用户里面绑定了 Github,当你登出 Github 之后,StackOverflow 还是处于登录的状态。

    然后看了 OpenID Connect,感觉就是比 OAuth2 多返回一个用户的 id,而且看很多网站提供的 OAuth2 里面在获取 Access_token 的时候已经把 open_id 给返回了,这样的话感觉跟 OAuth2 没多少区别。

    大佬们,对于我这种场景,求教使用什么方案会好一些,多谢!!
    7 条回复    2024-11-28 10:05:59 +08:00
    zm8m93Q1e5otOC69
        1
    zm8m93Q1e5otOC69  
       2021 年 4 月 8 日
    搜一下 SSO ?
    SmiteChow
        2
    SmiteChow  
       2021 年 4 月 8 日
    不就是单点么?
    SmiteChow
        3
    SmiteChow  
       2021 年 4 月 8 日
    单点和 OAuth2 授权本来就是两个概念呀,一个用于网站群,一个用于获取受限资源。
    redbelt
        4
    redbelt  
       2024 年 11 月 24 日
    楼主 有没有找到方法
    redbelt
        5
    redbelt  
       2024 年 11 月 24 日
    > 比如使用 Github 登录 StackOverflow 。实际上是 Stackoverflow 上新建了一个用户里面绑定了 Github ,当你登出 Github 之后,StackOverflow 还是处于登录的状态。

    ----
    使用 github 登录 stackoverflow ,之所以会弹框让你点击确定,是因为这里不是单纯的登录,而是 stackoverflow 还想要请求 github 上你的资源(头像昵称等),所以实际上使用的是 oauth2 协议, 而这里的确定交互,也仅仅在第一次使用 github 登录时会发生,之后不会,只要 github 本身在登录状态,很快就跳转到 stackoverflow 。

    google.com youtube.com 这两个网站的单点登录功能为什么那么丝滑?可以简单的理解为他们是一家的,不需要授权既可以取得数据,google.comyoutube.com 在未登录状态下都会重定向到 accounts.google.com 进行登录,成功登录后 account.google.com 下会被种上 cookie ,当再 google.com 或者 youtube.com 的时候如果发现当前网站没有登录态,会直接重定向到 account.google.com ,如果 account.google.com 有登录态,会带着登录态信息重定向到想要登录的网站比如 youtube.com, youtube.com 会根据这个登录态 cookie 找到当前用户是谁,并在返回的时候种下 youtube.com 的 cookie 。

    SmiteChow 说的 没错,这就是 SSO 。
    qwerthhusn
        6
    qwerthhusn  
    OP
       2024 年 11 月 25 日
    @redbelt 老哥虽然你在挖坟,但是我还是说下吧。


    三年前的事情了,我早被裁了。。

    不过那时候我们最后还是采用自定义的协议,因为我们是后台管理系统,当管理员在我们这边做变更后,需要业务系统及时知道,比如权限被收回了等等。所以那种 OAuth 的压根不适用。

    我们采用了业务系统登录会直接跳转用户中心,完事后会带着一个 Token ,然后业务系统后台需要去用户中心后台验证 Token 有效,并且在用户登出的时候用户中心后台会通知所有业务系统。。。除此之外,用户中心还提供给业务系统一些查询用户信息的接口等等。。。。。最后的效果是,我们自己家的业务系统跟用户中心的连接很好,用户体验也很好,就跟支付宝淘宝,Gooogle 油管那样丝滑,登录一个之后,另外一个无感进入。。。但是其他家第三方系统对接效果就不咋样了,可能是这套协议比较复杂,对方也懒得仔细弄,经常出现用户中心 Cookie 过期了甚至用户都被禁用了那边还能用的情况。。。
    redbelt
        7
    redbelt  
       2024 年 11 月 28 日
    @qwerthhusn
    哈哈哈

    没有实现统一登出回调就会出现第三方系统 token 持续生效的问题。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2668 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 03:45 PVG 11:45 LAX 19:45 JFK 22:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86