php - 跨域登录

标签 php html mysql cookies

我有几个域都在同一台服务器上,具有相同的 IP 和相同的数据库 - 所有 5 个域都可以访问这些域。

我最近重做了我的登录系统,所以在我的主域上,cookie 不仅适用于主域,也适用于子域。这意味着,如果用户登录到一个区域,他们将在所有地方登录。这太棒了!我用他们的哈希值(从数据库中获取)写了一个 cookie,并在加载每个页面时检查它,他们会自动安全登录。

这很好,但是当切换域时问题就来了,因为 cookie 似乎被锁定到域。所以我的其他域(我们称之为 domain2.com)无法从 domain1.com 读取 cookie。

有什么聪明的方法可以解决这个问题吗?我可以向数据库写入一些内容,例如 IP,但这不会很安全,因为我为每个人工作的公司都使用相同的 IP,因此它不会是特定的。

或者我考虑过可能在页面上包含一个隐藏的 iframe,它实际上链接到主服务器上的一个页面,并以某种方式提取信息。

我不确定,但我确定可以做到。有什么想法吗?

最佳答案

出于充分的理由,浏览器不允许从任何其他域读取 cookie。

你可以做的是让 domain2.com 重定向到 domain1.com 上的一个页面,该页面检查用户是否登录,如果他们是,它会使用用户的 id 重定向回 domain2.com,然后他们可以登录。

关于php - 跨域登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31178200/

相关文章:

php - 使用 laravel 内置的 API 登录用户

html - 使用媒体查询实现响应式正文背景

jquery - 自定义数据属性中定义的样式文本

javascript - 使div不透明以覆盖原始div

php - 在 php 中按字母顺序排列的列表组

MySQL 从同一个表中显示今年的值和去年的值

php - 路由到 View 而不传递变量 - laravel

php - Where 子句中的数组

mysql - 在插入其他表之前,将其中一个表中具有 URL 的列更改为 <a href ='URL' ></a>

php - 检查用户是否在其他设备上登录