Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress透明OAuth 1.0使用PHP登录_Php_Wordpress_Curl_Cookies_Oauth - Fatal编程技术网

Wordpress透明OAuth 1.0使用PHP登录

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,然后将响应解

我目前正在编写一个PHP项目,希望登录Wordpress vía OAuth 1.0,然后向API发出请求

工作流程如下:

  • 获取请求令牌
  • 使用请求令牌登录Wordpress。(问题就在这里)
  • 登录后,授权凭据并获取验证器令牌
  • 获取访问令牌
  • 最后,使用AT和AT Secret进行API调用
  • 我在XAMPP下的localhost上的测试工作正常,但是当我将代码上传到服务器(UNIX)时,Wordpress登录cookies时出现了一个问题

    我通过cURL进行登录调用,打开cookies,然后将响应解析为HTML(我需要字段“\uwpnce”发送到授权页面)

    问题是,我总是得到启用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;