如题,如何才能让 Ruby-China 和其它 Rails App(如者也、Ruby-Taiwan) 共用用户认证机制?
放在同一个域名下的话,可以共享 session:把 session_key 和 secret_token 设为一样,就可以在 session 共享 user_id。(搜索关键词:rails share session)
不同子域名的话,还要把 cookies 的域设成类似 .domain.com
不同域名的话,就要 CAS 或者 openid 或者 oauth/oauth2
@clc3123 雷!跟 ruby-china 互通什么?但这个功能应该是必须的。因为你对应的是不同的用户,垂直社区对他们更有吸引力;但有些基本的服务,又是各个垂直社区所必须的,所以就有了这样的需要。
做 SSO 很容易,ruby-china 通过 omniauth 来实现的内部认证登录系统,在这个基础上,把网站自身包装成一个 auth provider,然后给其它网站提供 OAth 认证是一件非常容易的事情。但是 OAuth 本身仅仅解决了身份的问题, @hujoy 提到的互通可能除了用户认证信息之外,是不是还希望在几个网站应用之间打通数据?如果是这样的话,ruby-china 可以通过提供 API 的方式解决,在进一步可以把自己的 API 服务打包成 gem 提供给第三方网站。