如何通过WP

时间:2019-07-15 16:04:00

标签: wordpress vue.js oauth axios nuxt.js

我有两台服务器。 首先是WP,我将其用作无头CMS-后端 第二个是Nuxt.js SPA应用-前端。 我想通过OAuth服务器向后端添加auhtentication。我正在使用名为“ WP OAuth服务器”的WP插件。现在,我已经挠了两天,但仍然没有任何积极的结果。 问题在于通过axios向后端发送请求。无论我如何尝试,CORS都会阻止一切。

我将其添加到主题functions.php

function wo_cors_check_and_response(){
if ($_SERVER['REQUEST_METHOD'] == "OPTIONS") {
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: POST, GET');
    header('Access-Control-Allow-Headers: Access-Control-Allow-Origin, Origin, X-Requested-With, Content-Type, Accept, Authorization');
    header('Access-Control-Max-Age: 1');  //1728000
    header("Content-Length: 0");
    header("Content-Type: text/plain charset=UTF-8");
    exit(0);
  }
}
add_action('wo_before_api', 'wo_cors_check_and_response');

当我发出此请求时:

async fetch({ store, app }) {
 await app.$axios.get('oauth/authorize/', {
      params: {
        client_id: 'CLIENT_ID',
        response_type: 'code'
      }

    })
      .catch((err) => {
        console.error(err)
      })
}

我得到302状态和CORS错误:https://imgur.com/r74mI45 在网络中,我看到红色的重定向请求已被取消:https://imgur.com/fxkHOuh 当我使用'Access-Control-Allow-Origin':'*'添加到axios请求标头对象时,唯一的区别是,现在我看到状态为200的预检OPTIONS请求:https://imgur.com/WuoU8kD 我也尝试过:

async fetch({ store, app }) {
 await app.$axios.get('oauth/authorize/', {
      params: {
        client_id: 'CLIENT_ID',
        response_type: 'code'
      },
      withCredentials: true,
      credentials: 'same-origin'

    })
      .catch((err) => {
        console.error(err)
      })
}

我无法理解此请求的结果。我再次收到CORS错误,但是由于某种原因,我得到了授权码。甚至此请求也被取消:https://imgur.com/PzrVHgl 我没有看到OPTIONS请求,只有302状态可以通过数据/ oauth / authorize,而且我相信它是通过授权码回调给我的。但是它已被取消,控制台中显示CORS错误。我想也许现在我的前端正在阻止回调。我只是在学习,现在我的头脑很白痴。你有什么想法吗?

0 个答案:

没有答案