/ / WP-API oAuth Server to Server Flow - php, oauth, wp-api

WP-API oAuth Server na tok serverov - php, oauth, wp-api

Som trochu zmätený z toku, ktorý potrebujempoužite, ak sa snažíte pripojiť k vzdialenému Wordpress WP-API z iného servera (v tomto prípade inej inštancie WP na rovnakom serveri). Používam balík PECL oAuth a väčšinu kódu, ktorý som zhromaždil z dokumentov na stránke https://secure.php.net/manual/en/class.oauth.php.

Je to spojené s hákom na ukladanie wordpress ako je tento, takže zakaždým, keď niekto uloží príspevok na SITE A, pokúsi sa poslať nejaké informácie na SITE B:

add_action( "save_post", "CrossPollinate_Save",10,3);

Vo vnútri CrossPollinate_Save je toto:

$client_key =               "....";
$client_secret =            "....";
$request_token_endpoint =   "http://..../oauth1/request";
$authorize_endpoint =       "http://..../oauth1/authorize";
$access_endpoint =          "http://..../oauth1/access";
$callback =                 $_SERVER["REQUEST_URI"];
$request_token =            ""; //populated later
$request_token_secret =     ""; //populated later


//STEP 1
$oauth = new OAuth($client_key, $client_secret, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION);
$request_token_info = $oauth->getRequestToken($request_token_endpoint);
if(!empty($request_token_info)) {
logToFile("Response from getRequestToken", $request_token_info);
} else {
logToFile("Failed fetching request token: ", $oauth->getLastResponse());
}

$request_token = $request_token_info["oauth_token"];
$request_token_secret = $request_token_info["oauth_token_secret"];

logToFile("request_token is: ", $request_token);
logToFile("request_token_secret is: ", $request_token_secret);

//STEP 2
$oauth->setToken($request_token, $request_token_secret);
$access_token_info = $oauth->getAccessToken($authorize_endpoint."?oauth_callback=".$callback);

if(!empty($access_token_info)) {
logToFile("Got access token! ", $access_token_info);
} else {
logToFile("Failed fetching access token: " . $oauth->getLastResponse());
}

Mám to oauth_token a a oauth_token_secret od kroku 1, skvelé, táto časť funguje! Po spustení kroku 2 sa vráti s odpoveďou, ktorá obsahuje označenie pre prihlasovaciu stránku. Ako poviem oAuth, aby tento krok preskočil a len poslal prístupový token späť na stránku presmerovania?

odpovede:

0 pre odpoveď č. 1

Nemyslím si, že existuje spôsob, ako to urobiťúplný trojnohý autor. Napriek tomu som nič nenašiel a práve som akceptoval, že budem musieť urobiť presmerovanie po získaní počiatočných tokenov.