我有一些代码可以为我的WordPress应用程序生成有效的授权令牌,但我无法弄清楚如何存储它或以安全的方式将其传递到其他地方。
require ('vendor/autoload.php');
const CLIENT_ID = 'xxxx';
const CLIENT_SECRET = 'yyyy';
const REDIRECT_URI = '<mysite>/testRestOauth.php';
const AUTHORIZATION_ENDPOINT = '<myothersite>/oauth/authorize';
const TOKEN_ENDPOINT = '<myothersite>/oauth/token';
$client = new OAuth2\Client(CLIENT_ID, CLIENT_SECRET);
if (!isset($_GET['code'])){
$auth_url = $client->getAuthenticationUrl(AUTHORIZATION_ENDPOINT, REDIRECT_URI);
header('Location: ' . $auth_url);
die('Redirect');
}
else {
$params = array('code' => $_GET['code'], 'redirect_uri' => REDIRECT_URI);
$response = $client->getAccessToken(TOKEN_ENDPOINT, 'authorization_code', $params);
$access_tkn = $response['result']['access_token'];
}
一个快速的方法(不是安全的!)应该调用这个页面并获得结果,但我不能将页面暴露给公众,因为每个人都能够生成并使用令牌!!
由于“代码”值尚未可用时发生重定向,我甚至无法通过cUrl调用此页面。
有什么想法吗?我相信很多人都面临同样的问题。
由于
答案 0 :(得分:0)
首先,您需要向AUTHORIZATION_ENDPOINT发出请求。这是用户将对您的应用程序进行身份验证和授予访问权限以检索/使用其个人信息的位置。
然后,您将被重定向到REDIRECT_URI,在那里您将从查询字符串中检索代码。您将使用此代码向TOKEN_ENDPOINT发出请求,以获取您将用于每个用户的每个后续请求的令牌。是的,这些令牌对于每个用户都是不同的,并且它们最终会到期。你需要使用刷新令牌来处理这个过期,你也应该从TOKEN_ENDPOINT接收它。