創建單次使用、客戶端或用戶單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 身份驗證被阻止
相關用法
- PHP WHMCS CreateProject用法及代碼示例
- PHP WHMCS CreateInvoice用法及代碼示例
- PHP WHMCS CreateQuote用法及代碼示例
- PHP WHMCS CreateOAuthCredential用法及代碼示例
- PHP WHMCS CreateOrUpdateTLD用法及代碼示例
- PHP WHMCS CreateClientInvite用法及代碼示例
- PHP WHMCS ClientAreaPageDownloads用法及代碼示例
- PHP WHMCS ClientAreaHeaderOutput用法及代碼示例
- PHP WHMCS CartTotalAdjustment用法及代碼示例
- PHP WHMCS ClientAreaPageSupportTickets用法及代碼示例
- PHP WHMCS ClientAreaPageDomainDNSManagement用法及代碼示例
- PHP WHMCS ClientAreaPageAffiliates用法及代碼示例
- PHP WHMCS ClientAreaPageViewInvoice用法及代碼示例
- PHP WHMCS ClientAreaPageProductsServices用法及代碼示例
- PHP WHMCS CustomFieldSave用法及代碼示例
- PHP WHMCS ClientAreaPageDomainRegisterNameservers用法及代碼示例
- PHP CachingIterator __construct()用法及代碼示例
- PHP WHMCS ClientAreaPageUnsubscribe用法及代碼示例
- PHP WHMCS ClientAreaPageConfigureSSL用法及代碼示例
- PHP WHMCS ClientAreaPageDomainDetails用法及代碼示例
- PHP WHMCS ClientAreaPageAddonModule用法及代碼示例
- PHP WHMCS ClientAreaPageContact用法及代碼示例
- PHP WHMCS ClientAreaPageSecurity用法及代碼示例
- PHP WHMCS ClientAreaPage用法及代碼示例
- PHP CachingIterator getCache()用法及代碼示例
注:本文由純淨天空篩選整理自whmcs.com大神的英文原創作品 CreateSsoToken。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。