web-dev-qa-db-ja.com

ヘッドレスワードプレス:フロントエンドリクエストを認証する方法

私はバックエンドでWordpressが次のようにフロントエンドでReact.jsを操作することを想定しています:

  1. Wordpressはhttp://example.com/apiにインストールされています
  2. React.jsスクリプトは、スクリプトタグを通じてhttp://example.com/index.htmlに読み込まれ、ルートdivに挿入されます

しかし問題があります。 wordpress登録とエンキューを制御しないと、ナンスをReact.jsスクリプトファイルにローカライズする方法がわかりません。

ナンスがないと、Cookieの検証でX-WP-Nonceヘッダーに必要になるため、ルートを認証できません。 https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/

Nonceに対してAPIリクエストを行うことはできますが、ルートは必然的に保護されないため、非常に安全ではなくなります。

これに対する解決策は何ですか?ヘッドレスwordpressを設定して、ナンスなどの認証情報をフロントエンドスクリプトファイルに渡す方法を教えてください。

2
Sean Dezoysa

Nonce認証方法は、独自のリンク(強調サイト)で説明されているように、WordPress内から行われたリクエストにのみ使用できます。

この認証方法はWordPress Cookieに依存していることに注意してください。その結果、この方法はREST APIはWordPressの内部で使用され、現在のユーザーがログインしています。さらに、現在のユーザーは、実行中のアクション。

次に、リンクで、リモート要求に使用できる他のいくつかのメソッドについて説明します。

Cookie認証はWordPress内でネイティブに利用できる唯一の認証メカニズムですが、リモートアプリケーションから機能する認証の代替モードをサポートするためにプラグインを追加できます。プラグインの例には、 OAuth 1.0a ServerApplication Passwords 、および JSON Web Tokens があります。

WordPress以外のReactアプリケーションから認証済みのリクエストを行う場合は、これらの方法のいずれかを使用する必要があります。

1
Jacob Peattie