如何在JavaScript异步获取中实现Wordpress应用程序密码认证?

cld4siwp  于 2023-08-03  发布在  WordPress
关注(0)|答案(1)|浏览(113)

我试图设置一个网站使用WordPress作为无头CMS,使用内置的REST API。使用NuxtJS获取数据。现在我想限制API访问,所以我启用/创建了WordPress应用程序密码验证。
然而,我似乎找不到关于如何将URL与身份验证参数组合以从API端点获取数据的详细信息。
凭证必须添加到正在获取的URL中?

async asyncData ({ $config: { apiUrl, apiUser, apiPassword } }) {
    try {
        const products = await (await fetch(`${apiUrl}/producten`)).json()

        return {
            products
        }
    }
    catch (error) {
        console.log(error)
    }
},

字符串
apiUrlapiUserapiPassword当前在nuxtjs.config.js中的publicRuntimeConfig下。但是1)它们应该进来privateRuntimeConfig
和2)获取以下作为返回 (这是来自WP Rest API的正确响应,因为我需要在某处传递auth-credentials,不知何故...)
{“code”:“rest_not_logged_in”,“message”:“您当前未登录。",“data”:{“状态”:401

dgjrabp2

dgjrabp21#

通过添加options来获取;

const fetchHeaderOptions = {
  cache: 'no-cache',
  method: 'GET',
  credentials: 'omit', //To instead ensure browsers don't include credentials in the request
  mode: 'no-cors',
  headers: {
    'Authorization': 'Basic ' + encode(`${apiUser}` + ":" + `${apiPassword}`),
    'Content-Type': 'application/json; charset=UTF-8; application/x-www-form-urlencoded',
  },
}

const products = await (await fetch(`${apiUrl}/products`, fetchHeaderOptions)).json()

字符串

相关问题