V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yazoox
V2EX  ›  程序员

有兄弟用过 OAuth 2.0 在网站上么?问个问题,如果 redirect 到 subdomain,需要 re-login 么?

  •  
  •   yazoox · 2018-05-17 15:37:27 +08:00 · 1650 次点击
    这是一个创建于 2164 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假如,我有一个网站,1.yazoox.com ,使用 OAuth2.0 管理用户登录。 然后有一个子域名网站 beta.1.yazoox.com

    首先用户登录到 1.yazoox.com ,然后有个按钮“亲~你想使用 beta 么?” 用户点击“ oh~ yeah,好的!么么达”, 然后跳转到 beta.1.yazoox.com

    这个时候,需要重新登录么?用 OAuth 2.0 可不可以做到,使用前面的登录信息? 咋整?

    谢谢!

    8 条回复    2018-05-18 14:50:29 +08:00
    ChristopherWu
        1
    ChristopherWu  
       2018-05-17 15:59:29 +08:00
    把 token 传过去呢?
    torbrowserbridge
        2
    torbrowserbridge  
       2018-05-17 16:03:12 +08:00 via Android
    你共享两个站点的 session 就不需要重新登录,否则就需要。这个和 oauth 没关系
    wuhanchu
        3
    wuhanchu  
       2018-05-17 16:49:29 +08:00 via Android
    看你怎么存储 token 了
    vjnjc
        4
    vjnjc  
       2018-05-18 00:39:01 +08:00 via Android
    你是用 OAuth 分发了 token 吗?
    是的话,token 在主战和分站都能用的话就不需要 relogin
    yazoox
        5
    yazoox  
    OP
       2018-05-18 10:39:22 +08:00
    @torbrowserbridge 怎么共享两站点的 session
    @wuhanchu 你说的“存储” token 指什么?这个应该都是存储在浏览器的 cache 里面的话,你的意思是,两个站点,缓存指向相同的目录么?
    wuhanchu
        6
    wuhanchu  
       2018-05-18 10:59:36 +08:00 via Android
    @yazoox
    oauth 都是要先申请 token,然后后面服务调用时候都带上 token 来表示是同一个用户。
    所以你两个界面共用同一个 token 就行。

    你可以把 token 存储在 cookie。设置域为主域名就行
    Cookie cookie = new Cookie("token","value");
    cookie.setDomain("yazoox.com"); 

    或者存储在 localstorage 可能就要使用 iframe 放在同一个父页面下,token 通过通信传给子页面。可以参考
    https://zhuanlan.zhihu.com/p/35738376
    yazoox
        7
    yazoox  
    OP
       2018-05-18 14:50:09 +08:00
    https://insready.com/en/blog/single-sign-using-oauth2-and-jwt-distributed-architecture
    @wuhanchu 我找到一篇文章,似乎 OAuth2.0 已经可以支持这个操作了,即 SSO (single sign-on)
    yazoox
        8
    yazoox  
    OP
       2018-05-18 14:50:29 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1661 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:44 · PVG 00:44 · LAX 09:44 · JFK 12:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.