17

1つのワードプレスのウェブサイト用のモバイルアプリを作成したいと思います。私はwordpressjsonプラグインを統合しました。ユーザー登録とログインのサービスがどこにあるのかわかりません。ご意見をお聞かせください。

4

5 に答える 5

33

1.テーマfunction.phpファイルに次のコードを貼り付けます。

2.WP-REST-APIプラグインがワードプレスサイトにインストールされていることを確認します

add_action( 'rest_api_init', 'register_api_hooks' );

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

function login($request){
    $creds = array();
    $creds['user_login'] = $request["username"];
    $creds['user_password'] =  $request["password"];
    $creds['remember'] = true;
    $user = wp_signon( $creds, false );

    if ( is_wp_error($user) )
      echo $user->get_error_message();

    return $user;
}

add_action( 'after_setup_theme', 'custom_login' );

次に、APIは次のように作成されます

http://www.url.com/wp-json/custom-plugin/login

200Postmanで試してみてくださいuser info

于 2017-08-06T12:08:22.417 に答える
11

@Salam El-Bannasのリンクを使用して、ログインとサインアップの両方を把握することができました。

仕事を終わらせるには、すべてを通して2つのプラグインが必要です。

WordPressJSONAPIプラグイン

JSONAPIユーザー

  1. ユーザーの登録の場合: GETurlプロセスの登録パラメーターの一部となるnonceIDが必要です(これはプラグインによって提供されます)。詳細については、@SalamEl-Bannasのリンクをお読みください。私がAndroidで使用した方法は、ページが読み込まれるとすぐに「Connecting ...」メッセージでUIをブロックし、バックグラウンドでUIのブロックが消えて、nonceIDが特別なnonに追加されるとnonceIDを取得することでした。 -ナンスID用に作成された編集可能なEditTextフィールド。ユーザーは必要な資格情報を入力し、取得したナンスIDを使用してサーバーに接続する前に、その有効性を認証します。サーバーからの結果はJSONであるため、ボレーとGSONを使用してAndroidコードで残りを処理できます。

  2. ユーザーのログインの場合:プラグインによって生成されたCookieIDのみが必要です(私の場合など)http://localhost/mylocalhost/my_api_base/user/generate_auth_cookie/?insecure=cool&email=xxx@xdfer.org&password=xxxv678

結果はこのjsonでした。

{"status":"ok","cookie":"xxxx|1486130938|Ot6yAX7iU773JnQ2zfE8sdmjt09LhHqDKSYBqtekuha|7fe58a35ab9f260c9bced9148f5cf9ae3ab56c16d7d9ce3b2db7da651d4d937d","cookie_name":"wordpress_logged_in_4132d8131ebbc6760d21627637bd4b20","user":{"id":1,"username":"administrator","nicename":"administrator","email":"xxx@xdfer.org","url":"","registered":"2016-11-02 17:46:19","displayname":"xxxx","firstname":"","lastname":"","nickname":"xxxxwedds","description":"","capabilities":"","avatar":null}}

次に、この素​​晴らしいチュートリアルを読んで、Androidで結果のJSONを使用する必要があります(Androidログインを初めて使用する場合)。それ以外の場合は、自分の裁量で行ってください。

あなたが私の並んだプロセスに従うと、それは本当に本当に本当にシンプルで面白いです。

于 2017-01-20T16:16:39.717 に答える
9

ユーザーを登録するには、URLを呼び出し、 GETメソッドを使用してデータを追加するだけで、データベースにユーザーを登録する方法を正確に示します。モバイルアプリからこれを行うには、ユーザーに必要なすべてのデータを含むURLにhttpリクエストを送信するだけです。これは、Androidからリクエストを行う方法を示しています。

これはユーザーを登録するためだけのもので、ユーザーにログインするために使用される別のプラグインJSONAPiAuthがあります。

今は時間がないので、これらが基本です。時間があれば、詳細と例を示します。しかし今のところこれはそれをするでしょう

于 2015-11-02T12:21:49.597 に答える
1

クリーンクラスで使用

// Register REST API endpoints
class Login_REST_API_Endpoints {

    /**
     * Register the routes for the objects of the controller.
     */
    public static function register_endpoints() {
        // endpoints will be registered here
        register_rest_route( 'wp', '/login', array(
            'methods' => 'GET',
            'callback' => array( 'Login_REST_API_Endpoints', 'login' ),
        ) );
    }

    /**
     * @param WP_REST_Request $request Full data about the request.
     * @return WP_Error|WP_REST_Request
     */
    public static function login( $request ) {


        $data = array();
        $data['user_login'] = $request["username"];
        $data['user_password'] =  $request["password"];
        $data['remember'] = true;
        $user = wp_signon( $data, false );

        if ( !is_wp_error($user) )
          return $user;
    }

}
add_action( 'rest_api_init', array( 'Login_REST_API_Endpoints', 'register_endpoints' ) );
于 2019-11-21T09:23:16.593 に答える
1

ユーザーの作成とパスワードのリセット機能を備えたWPRESTユーザーをお試しください

また、ユーザー機能を高度に制御する必要がある場合は、ログインにAAMを使用してください

于 2020-09-20T20:27:13.807 に答える