web-dev-qa-db-ja.com

REST APIでの認証の問題-rest_cannot_create

Wordpressの残りのAPIを使用しています。認証には、基本認証プラグインを使用します( JSON Basic Authentication

私はこのリクエストを使用します(postmanとnodejsの両方から):

POST /wp-json/wp/v2/posts HTTP/1.1
Host: **************
Authorization: Basic *********************
Content-Type: application/json
Cache-Control: no-cache

{ "title": "test", "content": "test", "status": "private", "excerpt": "test" }

サーバーでローカルにテストする場合、正常に動作しますが、VPSでは次のエラーが表示されます。

{
    "code": "rest_cannot_create",
    "message": "Sorry, you are not allowed to create posts as this user",
    "data": {
        "status": 401
    }
}

ユーザー資格情報が正しいことと、ユーザーが投稿を作成できることを知っています。

Rest-apiに到達する前に、authヘッダーがどこかで失われていると思われます。しかし、どこからデバッグを始めるべきですか?どのログ?

1
Ro L

Authorizationヘッダーは通常、Apacheによって除去されます。

.htaccessで修正できます

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
1
mrbarletta

すでにすべてを試したが、Wordpress Rest APIを介してリソースを作成できないためにここにいる場合は、私に合った機能を共有させてください。

まず、ここでコンテキストを説明します。Bitnamiを使用してAWSインスタンスでWordPressを起動しました。

次に、WooCommerceをインストールし、サンドボックスシステムとして使用するためにAPIを有効にしました。その後すぐに、Postmanを使用して製品を作成しようとしましたが、「woocommerce_rest_cannot_create」(「Sorry, you are not allowed to create resources.」)などのエラーが発生するたびに作成しました。 OAuthBasic Authなどのさまざまな認証方法を試しましたが、いずれも機能しませんでした。

そのため、(Woocommerceのエンドポイントではなく)WordPress AP​​Iエンドポイントを試して、投稿またはユーザーを作成できるかどうかを確認する必要があると考えましたが、どちらも機能しませんでした。次のようなエラーが発生しました:

  • "rest_cannot_create"("Sorry, you are not allowed to create posts as this user."
  • "rest_cannot_create_user"( "Sorry, you are not allowed to create new users")

ここに私のために働いたものがあります:

  • インストール Basic Authプラグイン 、リポジトリを/opt/bitnami/apps/wordpress/htdocs/wp-content/pluginsに複製してインストールし、WP Adminページのプラグインページからアクティブ化できます。または、リポジトリをZipとしてダウンロードし、WP Adminのプラグインページのファイルからインストールすることもできます。
  • 基本認証を使用するように、郵便配達人(またはリクエストの送信に使用しているもの)を変更します。既存の管理者ユーザーの資格情報を使用します。
  • .htaccessで使用可能な/opt/bitnami/apps/wordpress/htdocsファイルを編集します(このファイルは非表示になっています。表示されない場合でも大丈夫です)
  • RewriteEngine Onの下に新しい行を追加し、RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]を挿入して保存して終了します
  • 編集/opt/bitnami/apps/wordpress/conf/httpd-app.confRewriteEngine Onの後に新しい行を追加します
  • 新しい行に次を挿入します:RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]保存して終了
  • Apacheを再起動します:Sudo /opt/bitnami/ctlscript.sh restart Apache
  • (オプション)インストール ジョージステファニスによるアプリケーションパスワード

その後、Postmanから再試行しましたが、すべてが問題なく動作しました。

詳細を確認するには: https://community.bitnami.com/t/setting-up-api-access-to-wordpress-on-aws-ec2-instance/60589/7