创建单次使用、客户端或用户单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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。