web-dev-qa-db-ja.com

WP-REST APIを使用してユーザーにログインし、Androidアプリのユーザーデータを取得する方法

Wordpress REST AP​​Iを使用してログインし、Androidアプリでユーザーデータを取得したいです。

ユーザー用にwp_usersテーブル、ユーザー情報用にカスタムテーブルを使用しています。

私は自分自身のREST AP​​Iを書いてみましたが、そのために私は$ wpdbをWordpressのインストールの外でアクセス可能にしなければなりません。

API-KEYなどの機能を備えたソリューションを提供してください。

ありがとう

4
Divyanshu Jimmy

私はWP-REST APIを使った最も簡単な解決策を見つけました。最初にこのプラグインをあなたの環境に設定してください:

1.)テーマfunctions.phpにAPIエンドポイントフックを登録します。

add_action( 'rest_api_init', 'register_api_hooks' );
// API custom endpoints for WP-REST API
function register_api_hooks() {

    register_rest_route(
        'custom-plugin', '/login/',
        array(
            'methods'  => 'POST',
            'callback' => 'login',
        )
    );

    function login() {

        $output = array();

        // Your logic goes here.
        return $output;

    }

2.)デフォルトでは、かなりパーマリンクが有効になっている場合、WordPress REST AP​​Iは/ wp-json /に「存在します」。それから、APIエンドポイントはPOSTリクエストでyoudomain.com/wp-json/custom-plugin/loginでアクセス可能です。

custom-plugin/login が実際に register_rest_route _ PHP function register_api_hooks() に定義されていることに注意してください。

APIキーのために私はWordpressのNoncesを使用しています - ここでの議論のようにかなり簡単です 。これらの答えが、Wordpress REST AP​​Iに不慣れなすべてのフルスタック開発者に役立つことを願っています。

7
Divyanshu Jimmy

単にユーザーログインしてユーザー詳細を取得したい場合は、 "JSON API AUTH"という優れたプラグインを使用できます

https://wordpress.org/plugins/json-api-auth/ /

以下のメソッドが利用可能です:validate_auth_cookiegenerate_auth_cookieclear_auth_cookieget_currentuserinfo

nonceはhttp://localhost/api/get_nonce/?controller=auth&method=generate_auth_cookieを呼び出すことで作成できます

その後、 'nonce'値を使ってクッキーを生成することができます。 http://localhost/api/auth/generate_auth_cookie/?nonce=f4320f4a67&username=Catherine&password=password-here

他のコントローラ呼び出しでこのようにcookieを使用します。http://localhost/api/contoller-name/method-name/?cookie=Catherine|1392018917|3ad7b9f1c5c2cccb569c8a82119ca4fd

2
Saran