WordPress OAuth2 - 以安全的方式检索令牌
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WordPress OAuth2 - 以安全的方式检索令牌相关的知识,希望对你有一定的参考价值。
我有一些代码为我的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 OAuth2Client(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调用此页面。
任何的想法?我相信很多人都面临同样的问题。
谢谢
答案
首先,您需要向AUTHORIZATION_ENDPOINT发出请求。这是用户将对您的应用程序进行身份验证和授予访问权限以检索/使用其个人信息的位置。
然后,您将被重定向到REDIRECT_URI,在那里您将从查询字符串中检索代码。您将使用此代码向TOKEN_ENDPOINT发出请求,以获取您将用于每个用户的每个后续请求的令牌。是的,这些令牌对于每个用户都是不同的,并且它们最终会到期。您需要使用刷新令牌来处理此过期,您还应该从TOKEN_ENDPOINT接收该刷新令牌。
以上是关于WordPress OAuth2 - 以安全的方式检索令牌的主要内容,如果未能解决你的问题,请参考以下文章