我对松散耦合的方法有点陌生,但我正在尝试一下。我有一个 PHP 后端文件,用于接收和响应来自前端的请求。问题是前端位于https://servername.com而后端是http://localhost/backend.php
我想检查后端以确保我已验证的用户正在发出请求,但我无法弄清楚如何从前端到后端共享会话。基本上,我想知道发出请求的操作员的用户 ID,这样我就可以让后端根据访问级别适当地生成响应。
我目前正在使用 curl 生成这样的请求:
$ch= curl_init();
curl_setopt($ch,CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['session_id'=>session_id()]));
curl_setopt($ch, CURLOPT_URL, 'http://localhost/backend.php');
$response = curl_exec($ch)
等等。我关闭它,返回等等,但这永远行不通。每次我发送会话 ID 并尝试在后端恢复它时,传输都会超时。
根据我正在阅读的所有内容,恢复并不难:
if ($_REQUEST['session_id'])
session_id($_REQUEST['session_id']);
session_start();
但它失败了。如果我不发送会话 ID,则通信有效,但我在后端没有会话信息。如果我发送 id,它每次都会超时。
注意:我尝试使用 HTTPS 将 CURL url 更改为https://localhost和 servername 但随后出现错误:请求的域名与服务器的证书不匹配。在没有 HTTPS 的情况下尝试 servername 会出现与我开始时相同的超时问题。
森栏
holdtom