You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用LogMeIn Rescue API获取组信息时始终返回NOTLOGGEDIN

排查LogMeIn Rescue API调用返回NOTLOGGEDIN的问题

核心问题分析

你遇到的情况是:SOAP调用login返回login_OK,但后续getGroup返回getGroup_NotLoggedIn;CURL方式获取到auth code后,后续请求同样返回未登录。这本质是会话未在请求间正确保持,LogMeIn Rescue API依赖会话cookie维持登录状态,而默认的PHP客户端设置未启用会话持久化。

具体解决方案

1. 修复SOAP客户端的会话保持

PHP的SoapClient默认不会自动保存复用会话cookie,需显式配置cookie存储维持会话:

// 定义临时cookie存储路径(确保PHP有读写权限)
$cookieFile = tempnam(sys_get_temp_dir(), 'lmi_cookie');

// 初始化SoapClient时添加会话相关选项
$soapclient = new SoapClient(
    "https://secure.logmeinrescue.com/api/api.asmx?wsdl",
    [
        'trace' => true,
        'keep_alive' => true,
        'stream_context' => stream_context_create([
            'http' => [
                'cookie_file' => $cookieFile,
                'cookie_jar' => $cookieFile
            ]
        ])
    ]
);

$loginparams = [
    'sEmail' => $_POST['lmiuser'],
    'sPassword' => $_POST['lmipass']
];

$loginResult = $soapclient->login($loginparams);
print_r($loginResult);

$getgroupparams = [
    'iNodeID' => 11956835
];

$getGroupResult = $soapclient->getGroup($getgroupparams);
print_r($getGroupResult);

// 清理临时cookie文件
unlink($cookieFile);

关键改动:

  • 通过cookie_file和cookie_jar让SOAP请求共享会话cookie
  • 启用keep_alive保持连接复用
  • 添加trace方便调试请求头

2. 修正CURL方式的会话维持

用CURL时,必须确保后续请求复用登录时获取的cookie:

$cookieFile = tempnam(sys_get_temp_dir(), 'lmi_cookie');

// 初始化CURL并设置cookie存储
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 执行登录请求(需按API要求构造POST参数/XML请求体)
curl_setopt($ch, CURLOPT_URL, "https://secure.logmeinrescue.com/api/login.asmx");
$loginResponse = curl_exec($ch);

// 执行getGroup请求
curl_setopt($ch, CURLOPT_URL, "https://secure.logmeinrescue.com/api/getGroup.asmx");
// 若用令牌认证,需在参数中携带sAuthCode
$getGroupResponse = curl_exec($ch);

curl_close($ch);
unlink($cookieFile);

注意:令牌认证方式下,每个后续API请求都需携带sAuthCode参数,不能依赖会话cookie,两种认证方式不可混用。

3. 额外排查点

  • 核对iNodeID:确认从管理控制台获取的节点ID无复制错误
  • 验证账号权限:确保账号不仅有控制台权限,还开启了API访问权限
  • 检查请求头:启用trace后打印完整请求头,确认cookie在getGroup请求中正确携带
  • 避免混合认证:选择login会话或令牌认证其中一种方式执行全程请求

内容的提问来源于stack exchange,提问作者Paul H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:53:12