V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
liiihhhh
V2EX  ›  问与答

最近在使用 CAS 做单点登录,碰到个问题。在认证之后,在其他子业务不需要认证的请求上如何获得用户信息

  •  
  •   liiihhhh · Dec 21, 2016 · 5207 views
    This topic created in 3419 days ago, the information mentioned may be changed or developed.
    比如我现在有三个站点
    cas cas.xx.com
    app1 aap1.xx.com
    app2 app2.xx.com
    app1 app2 都是用 spring boot 写的

    其中
    app1 /index (无需认证) /protected1 (需要认证)
    app2 /index (无需认证) /protected2 (需要认证)

    情况一、
    如果我先访问 app1 的 /protected1 会去 cas 中认证
    此时我再访问 app2 /protected2 也会去 cas 中认证(此时就不要输入用户名密码了)
    这里我理解, 主要是在子业务拦截了需要认证的 url ,需要认证的就会跳转到 cas.xx.com
    情况二、
    如果我先访问了 app1 的 /protected1 并成功认证
    再访问 app2/index ,这个时候我该如何拿到认证后的用户信息

    我观察了一下百度的
    如果我在百度登陆了, 当我访问糯米网首页就直接是登陆状态了
    糯米网也是异步请求了 nuomipassport.baidu.com 来认证
    我的猜测是:
    如果认证成功就更新首页的用户信息
    不知道这个思路对不对
    4 replies    2024-04-05 10:58:51 +08:00
    fantastM
        1
    fantastM  
       Dec 21, 2016 via iPhone   ❤️ 1
    看一波 sso 协议就清楚了。人家总结版: http://mp.weixin.qq.com/s/5j4vSF_sXNanS5cR8TzLJA
    liiihhhh
        2
    liiihhhh  
    OP
       Dec 23, 2016
    我目前的解决方案是,在不需要认证的页面嵌入一个 iframe ,在 iframe 中走登陆的流程,如果成功了返回一段 javascript ,这段 javascript 会重新刷新当前页面,以达到登陆的目的
    lhchun800910
        3
    lhchun800910  
       Aug 28, 2018
    您好,最近也是碰到了 CAS 获取用户登录信息这个情况,您解决了吗?具体的解决思路是什么呢??
    8rmEHZ8WhVHVOb0E
        4
    8rmEHZ8WhVHVOb0E  
       Apr 5, 2024
    sso 登录后另外写一个加密 cookie ,子站点判断这个 cookie 如果存在,说明 sso 已经登录了,主动跳转到 sso 登录,同理这个 cookie 不存在的时候而子站点却是登录状态的时候可以去 sso 主动退出
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   817 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 22:20 · PVG 06:20 · LAX 15:20 · JFK 18:20
    ♥ Do have faith in what you're doing.