gpt4 book ai didi

WordPress 和 JWT 以及自定义 API Rest 端点

转载 作者:行者123 更新时间:2023-12-03 06:47:12 24 4
gpt4 key购买 nike

我需要为 WordPress 提供一个插件,该插件将具有很少的自定义 API 端点,并且我已经安装了这两个插件

我创建了自定义端点:

add_action('rest_api_init', function ($data) {
register_rest_route('mladi-info/v1', '/user/favorites', [
'methods' => 'GET',
'callback' => 'mi_get_favorite_posts'
]);
});

我需要保护此端点,以便只有那些发送了 JWT token 的请求(使用/wp-json/jwt-auth/v1/token 端点发送用户名和密码生成)才能被处理,否则应该返回 401 状态代码。我该怎么做?

最佳答案

注册新路由时应添加permission_callback参数。

    add_action('rest_api_init', function ($data) {
register_rest_route('mladi-info/v1', '/user/favorites',
array(
'methods' => 'GET',
'callback' => 'mi_get_favorite_posts',
'permission_callback' => function ($request) {
if (current_user_can('edit_others_posts'))
return true;
}
)
);
});

JWT Auth 插件将根据 header 中的 token 值向permission_callback 函数提供用户对象,您所需要做的就是在该函数内计算出一些“权限逻辑”,该逻辑将返回一个 bool 值。

在我发布的解决方案中,仅当访问 REST 端点的用户具有“edit_others_posts”功能时,回调才允许访问 REST 端点 - 管理员和编辑者就是这种情况。

关于WordPress 和 JWT 以及自定义 API Rest 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45711303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com