當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。