首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails:具有两个域的一个应用程序-共享身份验证

Rails:具有两个域的一个应用程序-共享身份验证
EN

Stack Overflow用户
提问于 2013-04-03 09:27:47
回答 1查看 694关注 0票数 2

我的网站是Heroku上的mydomain.com,使用Devise身份验证。

我买了一个简短的url me.do,也指向我的同一个Heroku应用程序。

当用户在mydomain.com上登录时,我也需要他们在me.do上登录,这样当他们在mydomain.com上登录后转到me.do时,他们就不必再次登录了。

如何在mydomain.com和me.do上使用Devise共享身份验证会话?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-03 18:55:41

没有简单的方法可以跨域共享身份验证,因为身份验证通常绑定到cookie(会话),这些cookie只绑定到一个域,并且不能跨域访问。

您可以管理这样的东西的唯一方法是确保在登录时在两个域上都设置了cookies。您可以通过重定向循环来完成此操作:

  • 登录请求到达domain1 (例如,来自登录表单)
  • 您为domain1
  • 设置会话cookie,然后重定向到domain2并在
  • 中设置会话cookie,然后将用户重定向回domain1(继续他最初要去的地方)

为了确保这不是一个无穷无尽的循环,您必须在重定向中添加一些参数,以了解如何处理这种情况。

但如果有可能避免它,我会建议你不要实现这个。没有唯一的域是非常糟糕的做法。即使允许有www的域名和没有www的域名,也会给用户带来相当多的困惑,给开发者带来很多麻烦--在你的情况下,情况会更糟。

会话并不像正常情况下那样有用。设置额外的cookie或会话值将不再起作用(除非您每次都执行该循环)。在用户实际使用第二个域之前,他在那里的会话甚至可能已经过期(这取决于您的身份验证框架如何处理它)。这些只是你可能会遇到的一些问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15777341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档