我正在使用OAuth 2.0访问dropbox,在成功验证用户身份后,它将获得访问令牌。当我成功地对用户进行身份验证时,我会被困在有授权码的成功页面上。如何重定向到本地主机并将其转换为访问令牌?我正在使用php进行开发。
$appInfo = dbx'AppInfo::loadFromJsonFile("config.json");
$webAuth = new dbx'WebAuthNoRedirect($appInfo, "PHP-Example/1.0");
$authorizeUrl = $webAuth->start();
//echo $authorizeUrl;
header("Location:$authorizeUrl");
//$authCode = 'trim('readline("Enter the authorization code here: "));
$authCode = $_GET;
list($accessToken, $dropboxUserId) = $webAuth->finish($authcode);
print "Access Token: " . $accessToken . "'n";
$dbxClient = new dbx'Client($accessToken, "PHP-Example/1.0");
$accountInfo = $dbxClient->getAccountInfo();
print_r($accountInfo);
您使用的是WebAuthNoRedirect
,它不会重定向回您的应用程序。您需要使用WebAuth
(执行重定向)。如果您查看PHP SDK下载中的web-file-browser.php
示例,您将看到一个如下所示的示例:
function getWebAuth()
{
list($appInfo, $clientIdentifier, $userLocale) = getAppConfig();
$redirectUri = getBaseUrl()."/dropbox-auth-finish";
$csrfTokenStore = new dbx'ArrayEntryStore($_SESSION, 'dropbox-auth-csrf-token');
return new dbx'WebAuth($appInfo, $clientIdentifier, $redirectUri, $csrfTokenStore, $userLocale);
}
我将从这个示例开始,因为它是一个完整的端到端web应用程序。