如何在多个(子)域之间共享身份验证?

时间:2013-01-04 12:52:12

标签: api sinatra oauth-2.0 rack warden

  1. 未经身份验证的用户到达www.example.com。

  2. 用户登录:https://api.example.com/login

  3. 成功登录后,系统会将用户重定向到:https://dashboard.example.com

  4. 返回时:www.example.com - 保留会话,用户现在可以从那里退出

  5. 示例由Heroku显示,它在应用程序之间共享cookie,如屏幕截图所示。

    cookies from Heroku

    此设置如何工作? 如何使用Rack应用程序模仿此设置?

1 个答案:

答案 0 :(得分:1)

使用SSO / OpenID样式技术,例如通过重定向通过表单并在表单参数中来回传输身份验证质询令牌。

例如,看看stackovervflow和姐妹们如何做到这一点。您可以使用另一个登录到一个,它通过表单和重定向实现。

对于严格的子域名,您只需使用一个会话cookie即可发送到“* .domain.com”中的所有主机