【问题标题】:403 "rest_forbidden" error in WordPress REST API (but only for settings)?WordPress REST API 中的 403“rest_forbidden”错误(但仅适用于设置)?
【发布时间】:2018-02-06 10:37:52
【问题描述】:

除了设置 (/wp/v2/settings) 之外,我从 WordPress 获得了所有 API。它返回的 rest_forbidden 错误

{
  "code": "rest_forbidden",
  "message": "Sorry, you are not allowed to do that.",
  "data": {
    "status": 403
  }
}

【问题讨论】:

  • 我得到了类似的结果,我可以使用带有客户端密码的应用程序 API 获得此结果,但在使用 WP-API 基本身份验证时无法获得。
  • @calcsam - 您能否为这个问题提供更详细的答案,为其他用户(包括我自己)概述您的解决方案。谢谢。
  • Wordpress 代码参考 add_filter() 参数 $priority 描述可能会有所帮助。
  • 请解释你的代码你想要做什么。那么我会告诉你解决方案。
  • 403 不允许访问,可能您的用户没有正确的权限更新设置?

标签: wordpress http-status-code-403 wordpress-rest-api


【解决方案1】:

您的用户没有正确的权限来访问该路由上的数据。开箱即用的/settings/ 路由需要manage_options 权限(请参阅get_item_permissions_check 方法)。

// found in WP Core class-wp-rest-settings-controller.php
/**
 * Checks if a given request has access to read and manage settings.
 *
 * @since 4.7.0
 *
 * @param WP_REST_Request $request Full details about the request.
 * @return bool True if the request has read access for the item, otherwise false.
 */
public function get_item_permissions_check( $request ) {
  return current_user_can( 'manage_options' );
}

【讨论】:

    【解决方案2】:

    哪些用户与 API 凭据相关联?

    设置端点需要用户拥有manage_options权限;如果您使用的是自定义角色,则可以使用 "manage_options" => true;

    否则只需设置用户管理员角色。

    【讨论】:

      【解决方案3】:

      如果有人遇到问题,请尝试安装此插件:https://wordpress.org/plugins/application-passwords/

      从您的个人资料生成应用程序密码并将其与基本身份验证一起使用,您的用户名将与 WordPress 用户名或电子邮件相同,密码将是新生成的密码。

      您可能还需要在 .htaccess 文件中添加 HTTP 标头重写规则,为此请遵循:https://github.com/WordPress/application-passwords/wiki/Basic-Authorization-Header----Missing

      【讨论】:

        猜你喜欢
        • 2022-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-20
        • 1970-01-01
        • 2012-05-02
        相关资源
        最近更新 更多