WordPress:如何使用JWT Auth插件对REST API进行私有访问

8ehkhllq  于 2022-11-02  发布在  WordPress
关注(0)|答案(1)|浏览(163)

我下载,安装和激活插件"JWT Authentication for the WP REST API" .
我还看到了如何在从客户机发送凭据时获得JWT访问令牌。
但我不知道如何使用现有的WordPress REST API插件。
例如,如果我跟随像/wp-json/wp/v2/posts/wp-json/wp/v2/posts/1这样的链接,我仍然获取资源而不限制访问,所以访问仍然是公共的。
那么,如何限制访问使其与插件的私人?

z0qdvdin

z0qdvdin1#

您可以使用rest_authentication_errors钩子过滤器来限制与is_user_logged_in()user_can()结合使用的REST访问。

<?php

add_filter( 'rest_authentication_errors', function( $result ) {

    if ( true === $result || is_wp_error( $result ) ) {

        return $result;

    }

    if ( ! is_user_logged_in() && ! user_can( get_current_user_id(), 'export' ) ) {

        return new WP_Error(
            'rest_not_logged_in',
            __( 'Silence is golden.' ),
            array( 'status' => 401 )
        );

    }

    return $result;

} );

相关问题