首页 > 解决方案 > WooCommerce:如何通过 REST API 检查用户授权

问题描述

在我的商店里有一个 iframe,其中放置了产品。iframe 可以保存选中的产品配置,但是只有授权用户才能这样做。因此,需要检查令牌是否在登录时进入。Wordpress 提供了函数 is_user_logged_in () 但它不适合我。我的问题是:有没有办法通过 REST API 来做同样的事情?

标签: phpwordpresswoocommerce

解决方案


https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/

默认情况下,WP REST ajax 调用本身不会传递 cookie。您可以按照上述参考,使用这种方式:

在 PHP 中:

<?php
wp_localize_script( 'wp-api', 'wpApiSettings', array(
    'root' => esc_url_raw( rest_url() ),
    'nonce' => wp_create_nonce( 'wp_rest' )
) );

在 JS 中:

$.ajax( {
    url: wpApiSettings.root + 'wp/v2/posts/1',
    method: 'POST',
    beforeSend: function ( xhr ) {
        xhr.setRequestHeader( 'X-WP-Nonce', wpApiSettings.nonce );
    },
    data:{
        'title' : 'Hello Moon'
    }
} ).done( function ( response ) {
    console.log( response );
} );

WP 将自动在 REST 中设置用户。你现在可以使用is_user_logged_in()了。


推荐阅读