当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


PHP WHMCS CreateSsoToken用法及代码示例

创建单次使用、客户端或用户单sign-on 访问令牌

令牌的有效期最长为 60 秒。

警告:返回的令牌向关联的客户帐户提供complete 身份验证。 imperative 脚本确保触发此 API 调用并接收此数据的参与者已验证其身份和关联帐户的所有权。 IE,这个API的调用应该在你自己的用户认证和账号映射引擎后面。

注意:兑换此令牌的关联端点仅用于一次性可信令牌,不会尝试强制执行 WHMCS 登录表单常见的验证码或 2FA 授权控制。

使用“clientarea:services” 等短期术语表示有效目的地。可能的目的地记录在https://docs.whmcs.com/WHMCS_Single_Sign-On_Developer_Guide#Supported_Destinations

请求参数

参数 类型 说明 必需的
action string “CreateSsoToken” Required
client_id int 应通过生成的令牌进行身份验证的客户端的 ID Optional
user_id int 应通过生成的令牌进行身份验证的用户的 ID。如果未提供,将假定所请求客户端的所有者。 Optional
destination string 一个有效的目的地。如果未提供,目的地将是客户区主页 Optional
service_id int 各个客户区 $destination 的服务 ID Optional
domain_id int 各个客户区 $destination 的服务 ID Optional
sso_redirect_path string 使用 sso:custom_redirect 目标时身份验证后重定向的自定义相对路径 Optional

响应参数

参数 类型 说明
result string 操作结果:成功或错误
access_token string 用于在单个 sign-on 端点对用户进行身份验证的 OTP 令牌
redirect_url string 用于重定向远程系统认证用户的准备好的 URL

示例请求 (CURL)

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.example.com/includes/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
    http_build_query(
        array(
            'action' => 'CreateSsoToken',
            // See https://developers.whmcs.com/api/authentication
            'username' => 'IDENTIFIER_OR_ADMIN_USERNAME',
            'password' => 'SECRET_OR_HASHED_PASSWORD',
            'client_id' => '1',
            'destination' => 'clientarea:product_details',
            'service_id' => '1',
            'responsetype' => 'json',
        )
    )
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);

示例请求(本地 API)

$command = 'CreateSsoToken';
$postData = array(
    'client_id' => '1',
    'destination' => 'clientarea:product_details',
    'service_id' => '1',
);
$adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later

$results = localAPI($command, $postData, $adminUsername);
print_r($results);

示例响应 JSON

{
    "result": "success",
    "access_token": "afaed4482ad1e6b75492cdd421cc458b1991a97c",
    "redirect_url": "http:\/\/example.test\/oauth\/singlesignon.php?access_token=afaed4482ad1e6b75492cdd421cc458b1991a97c"
}

错误响应

可能的错误条件响应包括:

  • client_id 无效
  • user_id 无效
  • 客户端的 user_id 无效
  • 需要有效的 client_id 或 user_id
  • 目的地无效
  • 无法配置令牌:x
  • 客户端 x 的 SSO 身份验证被阻止

相关用法


注:本文由纯净天空筛选整理自whmcs.com大神的英文原创作品 CreateSsoToken。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。