2013-05-10 77 views
1

我有一个网站使用PHP会话来管理登录用户。另一家公司要求用户登录他们的网站,然后当他们来到我的网站时,用户将自动登录。通过cURL设置PHP会话 - 它会为客户端还是服务器设置会话?

要做到这一点,我们正在使用cURL将用户详细信息从其网站发布到我的网站,在那里我验证他们,并创建一个会话,他们登录。

什么我不能让我的头周围,虽然是:会创建为发送cURL POST的服务器或用户的计算机?如果其他网站发布数据到我的网站,我创建了基于成功登录的会话,当用户访问我的网站时,他们是否会登录?

我刚刚开始构建机制来做到这一点,并希望在我得到太多之前检查 - 我开始认为它不起作用。

回答

1

会话将为创建curl请求的服务器创建,而不是最终客户端。你可以做的是在服务器发出curl请求时生成一个令牌,然后将该令牌给予最终客户端,该客户端将使用此令牌请求您的站点。然后你可以检查这个令牌来登录他

+0

啊啊啊K - 谢谢,我已经将你的答案标记为你首先提出的答案。我会将令牌存储在我的数据库中,并将其发回给他们,然后告诉他们在将用户发送到我的网站时将其包含在URL中。我还会在初始设置安全性后让令牌仅在数分钟内有效。 – SammyBlackBaron 2013-05-10 14:37:42

1

首先会话将只在你自己的浏览器/“用户计算机”上工作。例如,我登录到一个网站,我用了一个会话,所以这个会话将保持活跃只在我的电脑浏览器中。但是当我关闭浏览器时,会话将被销毁。所以要保持会话活动,你需要cookies。谢谢

2

正如其他人所说,这种方法将无法正常工作。当你创建一个PHP会话时,它将被绑定到发出请求的计算机上 - 在这种情况下,这将是另一台服务器。

您需要确定用户在访问您的网站时识别用户的方法。这可能是mguimard建议的一种令牌,第三方cookie,甚至只是他们的IP地址(尽管我强烈建议不要使用Ip)。一旦你确定了识别方法,你只需将该标识符存储在内存/数据库中的某处。当用户通过标识符来到您的网站时,从存储中检索并自动创建新会话。

0

是不可能为你创造那些在你的网站没有登录谁会话,你只为服务器创建一个会话,当然这是行不通的

你可以要求服务器构建机制,当新用户登录时,将用户重定向到您的站点以创建会话,然后您自动重定向回服务器

或者您可以实现与服务器相同的会话id方法,例如ip + useragent , 你需要做的是同步从服务器的会话,或服务器推送会话给你