如何从 User Up 检查 Site2 是否在 PHP 中的其他服务器上有会话


How to check from User Up if a Site2 has a session on other server in PHP

感谢您阅读本文。我的问题是这样的。

  1. (site1( 我使用我的应用程序 ID 通过 Curl 呼叫服务器

  2. (site2( 服务器获取应用程序 ID 和"登录用户"的当前 $_SESSION(不会工作(

  3. (site2( access.php 返回一个 JSON { "user_token": "12312312312" }

  4. (Site1( 读取 JSON 并解析它,如果user_token为 NULL,则我显示一个登录按钮,否则我显示用户配置文件。

但这不起作用,因为 _SESSION 美元没有给出当前会话。

有没有人知道解决这个问题的方法?

谢谢!!

您的 cURL 调用不被视为属于站点 2 上的正确会话。这很可能是因为您没有发送会话 ID - 它要么在 cookie 中,要么在 URL 中。如果未提供 SID,则无法将请求与会话关联。大豆欧必须:

  • 站点 2 上的用户的会话 ID 获取到站点 1 的请求中。这将需要一些相当重的管道。
  • 站点 1 的呼叫中包括此会话 ID
  • 站点 1 上,提取会话 ID 并将其用于 cURL 请求

为了使 site2 能够访问会话信息,您需要传递 site2 期望的 cookie。 Cookie 用于跟踪会话。

使用 curl,您可以传递带有标头的 cookie。

curl_setopt($ch, CURLOPT_COOKIE, "cookiename=cookievalue");

或者您也可以使用 cookiejar 或 cookiefile。

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFileLocation); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFileLocation);