瞎扯淡 如何才能让 Ruby-China 和其它 Rails App (如者也、Ruby-Taiwan) 共用用户认证机制?

hujoy · 2011年12月03日 · 最后由 huihen 回复于 2013年05月25日 · 4508 次阅读

如题,如何才能让 Ruby-China 和其它 Rails App(如者也、Ruby-Taiwan) 共用用户认证机制?

OAuth 2.0 ?

你用 github 账号登陆不就行了么

就都用 Github 不就得了?

@xdite 关键我准备做的网站是针对普通消费者和病人的,他们不熟悉 Github 呀。

在國外可以用 Twitter、Facebook 或 Google,他們使用 OAuth 或 OpenID 認証。國內也應該有類似的服務?

国内估计就用新浪微博和腾讯 QQ 吧。比较普及一些。

但关键是多个网站之间的信息互通,如果只通过这类认证的话,还是不太够。

不太清楚互通指甚麼?原本講的只是認證機制

有点类似 ucenter 的机制

放在同一个域名下的话,可以共享 session:把 session_key 和 secret_token 设为一样,就可以在 session 共享 user_id。(搜索关键词:rails share session)

不同子域名的话,还要把 cookies 的域设成类似 .domain.com

不同域名的话,就要 CAS 或者 openid 或者 oauth/oauth2

剥离 user model,做成一个 service。 话说有这么复杂吗?难不成你那医药网站还要跟 ruby-china 互通?

新浪微博,qq,还有淘宝

@clc3123 雷!跟 ruby-china 互通什么?但这个功能应该是必须的。因为你对应的是不同的用户,垂直社区对他们更有吸引力;但有些基本的服务,又是各个垂直社区所必须的,所以就有了这样的需要。

自己作一套 SSO 吧。

http://www.techbang.com.tw 我們就是自己搞 SSO...

做 SSO 很容易,ruby-china 通过 omniauth 来实现的内部认证登录系统,在这个基础上,把网站自身包装成一个 auth provider,然后给其它网站提供 OAth 认证是一件非常容易的事情。但是 OAuth 本身仅仅解决了身份的问题, @hujoy 提到的互通可能除了用户认证信息之外,是不是还希望在几个网站应用之间打通数据?如果是这样的话,ruby-china 可以通过提供 API 的方式解决,在进一步可以把自己的 API 服务打包成 gem 提供给第三方网站。

#14 楼 @xdite 是 oauth 做的?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号