2016-04-13 6 views
1

WP REST APIとJWTを接続するiOSアプリケーションを開発しています。 APIとJWTプラグイン(WP-APIのJWT認証)は正常に動作しています。WP REST APIによるユーザーのパスワード更新

アプリのログインはWordPressのユーザーとパスワードに基づいており、ユーザーのパスワードを変更することができます。ユーザーのパスワード(/wp-json/wp/v2/users/id?password=newpass)を更新すると、APIは機能しなくなります。私は(...もう一度パスワードを変更、削除、更新)任意の更新呼び出しを行う上で維持することはできませんし、応答が常にある:

{ 
    "code": "rest_cannot_edit", 
    "message": "Sorry, you are not allowed to edit users.", 
    "data": { 
    "status": 401 
    } 
} 

これはアプリではなく、あまりにも郵便配達を使用していないだけで起こります。 要約すると、WP REST APIとJWTプラグインを使用してユーザーパスワードを1回だけ変更できます。

私はアプリでパスワードを変更してから郵便配達で変更した場合、パスワードはアプリから更新できますが、もう一度一度だけ更新できます。 (同じトークンでも)

新しいトークンを生成しても機能しない場合、アプリケーションを再起動すると(新しいトークンを使用して)パスを再度変更することができます。

+0

コードで試してみましたか? –

+0

私はあなたを理解していません、ごめんなさい。私は迅速にすべての仕事をしているアプリを持っています。アプリはWP REST APIを介して情報を取得し、正常に動作しています。問題は、APIを使用してパスワードを変更したときに、すべてのAPI呼び出しが停止した後です。 –

+0

パスワードを更新するときにコードを確認しました –

答えて

1

私はあなたと同じ問題を経験しました。ユーザーのパスワードを変更すると、HTTPクライアントは古いの認証Cookieを保持します。つまり、wordpress_logged_inのCookieはユーザーの古いパスワードを参照し、401エラーが発生します。 APIを使用してユーザーのパスワードを変更した後、クライアントのCookieを消去するだけです。次の手順を実行して、郵便番号についてまずテストしてください。

  1. 通常、ユーザーのパスワードを変更するAPIリクエストを作成します。
  2. ユーザーのパスワードまたはその詳細を変更する別のAPIリクエストを作成します。 401エラーが表示されます。
  3. リクエスト画面で、クッキーの管理をクリックします。
  4. クッキーリストで、あなたのwordpressサイトを選択し、wordpress_logged_inクッキーを削除してください。
  5. アイテム2のAPIリクエストを繰り返してください。
関連する問題