对当前用户进行REST API身份验证

时间:2020-05-05 作者:nitsuj1001

我有一个类似于woocommerce的插件,它为我提供了一个REST API端点,用于获取一些特定于用户的数据。

当我试图通过Postman访问API时,我得到一个401-Not Authorized错误。

当然,我必须向api验证我的用户,但如何验证呢?

我发现了这篇(以及许多类似的)帖子:How to: Make JWT-authenticated requests to the Wordpress API

但所有这些例子似乎都是针对远程应用程序的。

在我的例子中,我想使用来自后端代码的api。

我想显示信息(从api收集)的页面是only 可供登录用户访问。

因此,我想为当前登录的用户进行一个api调用。这应该自动发生。不能为每个想要使用api的用户手动创建密钥,所有用户都应该有访问权限。

我可以在链接中使用这种方法吗?或者有更好的方法吗?

1 个回复
SO网友:nitsuj1001

我解决了我的问题。

这让我走上了正确的轨道:https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/

您可以通过前端和jquery进行api调用。

$.ajax( {
    url: \'<?php echo esc_url_raw( rest_url()) ?>\' + \'your/endpoint\',
    method: \'GET\',
    beforeSend: function ( xhr ) {
        xhr.setRequestHeader( \'X-WP-Nonce\', \'<?php echo wp_create_nonce( \'wp_rest\')?>\' );
    }
} ).done( function ( response ) {
    console.log( response );
} );
如果要将脚本外包到单独的文件中,则必须使用wp\\u localize\\u script传递url基址和nonce。