使用API登录并直接到页面

API支持与第三方系统集成的一种可能用途是使用API无缝地将用户登录到他们的内部网,然后将他们导航到内部网的页面。

单次使用令牌和重定向页面允许您轻松地将API认证用户转换为web认证用户,而无需再次经历登录过程。

下面的PHP示例代码首先将用户登录到API,然后为重定向器页面创建单个使用令牌,最后将用户导航到内部网中的目标页面,从而演示了这一点。

有关如何为您的实例找到API域和租户Guid的信息,请参见如何获取API信息

< ?//获取API调用的变量$apiDomain = "YOUR API DOMAIN";$webDomain = "你的网站域名";$tenantGuid = "你的租户GUID";$pageUrl = "你的目标页面";$user = "用户名";$pw = "PASSWORD";$accessToken = "";//登录API $resp = callApi("/token", "username=".$user."&password=".$pw."&grant_type=password");$accessToken = $resp['access_token']; // get a one time use token $resp = callApi("/api/logintoken",""); $oneTimeToken = $resp['login_token']; // redirect to redirector $returnUrl = $webDomain.$pageUrl; $url = $webDomain."/redirector?token=".$oneTimeToken."&returnUrl=".urlencode($returnUrl); header("Location: ".$url); // helper functions function callApi($url, $body){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $GLOBALS['apiDomain'].$url); if($body != ""){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $body); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $headers = [ 'Content-type: application/x-www-form-urlencoded', 'X-Tenant: '.$GLOBALS['tenantGuid'], 'Authorization: Bearer '.$GLOBALS['accessToken'] ]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $server_output = curl_exec($ch); curl_close($ch); return json_decode($server_output, true); } ?>

Baidu
map