感谢您阅读本文。我的问题是这样的。
-
(site1( 我使用我的应用程序 ID 通过 Curl 呼叫服务器
-
(site2( 服务器获取应用程序 ID 和"登录用户"的当前 $_SESSION(不会工作(
-
(site2( access.php 返回一个 JSON { "user_token": "12312312312" }
-
(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);