Wordpress透明OAuth 1.0使用PHP登录
我目前正在编写一个PHP项目,希望登录Wordpress vía OAuth 1.0,然后向API发出请求 工作流程如下:Wordpress透明OAuth 1.0使用PHP登录,php,wordpress,curl,cookies,oauth,Php,Wordpress,Curl,Cookies,Oauth,我目前正在编写一个PHP项目,希望登录Wordpress vía OAuth 1.0,然后向API发出请求 工作流程如下: 获取请求令牌 使用请求令牌登录Wordpress。(问题就在这里) 登录后,授权凭据并获取验证器令牌 获取访问令牌 最后,使用AT和AT Secret进行API调用 我在XAMPP下的localhost上的测试工作正常,但是当我将代码上传到服务器(UNIX)时,Wordpress登录cookies时出现了一个问题 我通过cURL进行登录调用,打开cookies,然后将响应解
//Llamamos al login
$data = array();
$data['log'] = $login;
$data['pwd'] = $password;
$data['redirect_to']="/wp-login.php?action=oauth1_authorize&oauth_token=" . $req_token;
$data['testcookie']="1";
$data['oauth_token']=$req_token;
$cookiefile1 = dirname(__FILE__)."/cookie1.txt" ;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . "/wp-login.php");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
curl_close($ch);
//Una vez logueado tenemos que autorizar
//Obtenemos los datos del formulario
$dom = new DOMDocument();
$dom->loadHTML($output);
$fichero = fopen("test.html","w");
fwrite($fichero,$output);
fclose($fichero);
//$wpnonce = $dom->getElementById("_wpnonce");
我错过了什么
提前感谢!由于我无法直接发表评论,但希望提供我的观察结果,您似乎正在尝试设置
oauth_令牌两次,一次在重定向URL中,另一次作为单独的数据键/值。请尝试:
$data = array();
$data['log'] = $login;
$data['pwd'] = $password;
$data['redirect_to']="/wp-login.php?action=oauth1_authorize&oauth_token=" . $req_token;
$data['testcookie']="1";
或
但是你真的不能两者兼得。你确定你的$url
设置正确吗?是的,我检查了很多次,它是正确的url。正如我所说,在本地主机上它可以工作。
$data = array();
$data['log'] = $login;
$data['pwd'] = $password;
$data['redirect_to']="/wp-login.php?action=oauth1_authorize";
$data['testcookie']="1";
$data['oauth_token']=$req_token;