假如,我有一个网站,1.yazoox.com ,使用 OAuth2.0 管理用户登录。 然后有一个子域名网站 beta.1.yazoox.com
首先用户登录到 1.yazoox.com ,然后有个按钮“亲~你想使用 beta 么?” 用户点击“ oh~ yeah,好的!么么达”, 然后跳转到 beta.1.yazoox.com 了
这个时候,需要重新登录么?用 OAuth 2.0 可不可以做到,使用前面的登录信息? 咋整?
谢谢!
1
ChristopherWu 2018-05-17 15:59:29 +08:00
把 token 传过去呢?
|
2
torbrowserbridge 2018-05-17 16:03:12 +08:00 via Android
你共享两个站点的 session 就不需要重新登录,否则就需要。这个和 oauth 没关系
|
3
wuhanchu 2018-05-17 16:49:29 +08:00 via Android
看你怎么存储 token 了
|
4
vjnjc 2018-05-18 00:39:01 +08:00 via Android
你是用 OAuth 分发了 token 吗?
是的话,token 在主战和分站都能用的话就不需要 relogin |
5
yazoox OP @torbrowserbridge 怎么共享两站点的 session
@wuhanchu 你说的“存储” token 指什么?这个应该都是存储在浏览器的 cache 里面的话,你的意思是,两个站点,缓存指向相同的目录么? |
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 |
7
yazoox OP https://insready.com/en/blog/single-sign-using-oauth2-and-jwt-distributed-architecture
@wuhanchu 我找到一篇文章,似乎 OAuth2.0 已经可以支持这个操作了,即 SSO (single sign-on) |