场景是: weibo 有个 app, 需要在两个子域名 oauth2, 比如 a.example.com 和 b.example.com, 但是 app 的 redirect_url 只能设置一个,比如设置为 a.example.com/auth/weibo/callback 这样的话,b.example.com 就不能去 oauth2 验证
想到的解决方法:
我现在采用的是第一种方法,不知道大家有没有遇到过这种问题,觉得那种方式好一点,大家讨论下
验证 a,然后 a 的验证部分数据库和 b 共享,我是菜鸟,我猜的
#1 楼 @jyz19880823 对的,数据库是一起的,但是 b 怎么知道 a 是由哪个用户验证的,这个就是我说的由 a 跳转到 b 的时候带上 token
用 example.com 这个 main site 做 oauth,sub domain 的 a 和 b 是可以和 main stie 共用同一个 cookie 的
#3 楼 @quakewang 这个需求还和 sso 不大一样,只是想不同 subdomain 用同一个 app 来登录,不同 sundomain 之间不能共享登录信息
我知道好像有个东西叫 CAS,具体没实践过。
weibo 的 oauth 没用过,用过 facebook, twitter, google, linkedin 之类的。有些 oauth 服务允许你在请求的数据中包含 redirect_url, 无需提前指定,只要 url 属于你指定的域名就没问题。当然有的服务只能提前在后台配置好 url. 有的服务后台明确写出:可以在请求中指定 url, 如果请求中指定了。忽略提前配置的。
你看看 weibo 是否支持请求中动态指定 redirect_url? 如果支持的话,问题迎刃而解。
#6 楼 @tylerlong 谢谢提醒,仔细看了 weibo app 的设置,weibo 可以绑定域名,然后域名 (包括子域名) 的所有 url 都可以指定为回调 url
#2 楼 @yggg token 代表外部网站的一名用户贝,不论哪个 app 用这个 token, :)