我正在为我的WordPress应用程序使用应用程序密码.我需要一种方法来判断它,当它被传递到头中时,有没有函数可以在我的权限回调中使用?

目前我在我的自定义插件此代码


register_rest_route(
 $this->namespace,
 '/my-route',
 array(
   'methods' => 'GET',
   'callback' => array($this, 'get_users_list'),
   'permissions_callback' => function( WP_REST_Request $request ){
     // need to check the application password here
   }
 )
);

谢谢你的帮助

推荐答案

100

'permissions_callback' => function( WP_REST_Request $request ) {
    // Get the application password from the request header
    $application_password = $request->get_header('Authorization');

    if (empty($application_password)) {
        return new WP_Error(
            'unauthorized',
            __('Application password not provided.'),
            array('status' => 401)
        );
    }

    // Check the application password
    $user = wp_check_application_passwords($application_password);

    if (is_wp_error($user)) {
        return new WP_Error(
            'unauthorized',
            __('Invalid application password.'),
            array('status' => 401)
        );
    }

    // Application password is valid, you can proceed with the callback
    return true;
}

在这段代码中,我们从请求头检索应用程序密码,然后使用wp_check_application_passwords对其进行验证.如果密码有效,则返回与应用程序密码关联的用户,您可以继续进行回调.如果它无效或丢失,则返回错误.

Php相关问答推荐

为什么PHP输出\n而不是实际创建一个新元素?

尽管包含目标日期,但日期范围比较仍有意外输出

如何隐藏x轴图表上的值

Symfony/Panther Web抓取不适用于登录后的内容(云功能)

使用.htaccess将任何路由重定向到文件

PHP日期操作,将多个日期输出为格式化字符串

如何修复条带元素中的错误&&客户端_机密&

使用WordPress wp_mail()的邮箱标题无效

在WooCommerce产品变体SKU字段旁边添加自定义输入字段

在带有livewire 3的laravel中使用规则方法时,无法进行实时验证

在WooCommerce存档页面中显示可变产品的库存变化属性

如何用十进制和字母数字减go 和添加 id

PHP 支持 APNG 文件吗?

我不明白为什么我收到未定义的数组键异常错误 - Laravel 9 PHP 8

Symfony:指定 data_class 时,提交的表单获取初始化前不得访问

设置GA4 PHP API的setSubject以允许访问所有管理员账户属性

PHP使用三元运算符进行null合并(再次)

如何通过工厂为点列制作一个假坐标?

php var_dump(1) 返回字符串(4)

构建 [Controller] 时目标 [Interface] 不可实例化