17

我想为一个 wordpress 网站创建移动应用程序。我已经集成了wordpress json 插件。我不确定在哪里可以找到用户注册和登录服务。请指教。

4

5 回答 5

33

1.在您的主题function.php文件中粘贴以下代码。

2.确保WP-REST-API插件应该安装在wordpress网站上

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

用 Postman 试试你会得到200回应user info

于 2017-08-06T12:08:22.417 回答
11

我能够使用@Salam El-Bannas 的链接弄清楚登录和注册,以防有人仍然需要这个你去:

你需要两个插件来完成工作:

WordPress JSON API 插件

JSON API 用户

  1. 对于用户注册:您需要nonce ID,它将成为 GET url 过程中注册参数的一部分(由插件提供)。阅读@Salam El-Bannas 的链接以获得更多理解。我在 android 中使用的方法是,页面加载后我立即使用“正在连接...”消息阻止 UI,而在后台获取 nonce ID 一旦其完成 UI Blocking 消失并且 nonce ID 被添加到一个特殊的 non - 为 nonce ID 创建的可编辑 EditText 字段,然后用户输入他/她所需的凭据,我在使用我得到的 nonce ID 连接到服务器之前验证它的有效性。服务器的结果是 JSON,所以我可以使用 volley 和 GSON 在 android 代码中处理其余部分。

  2. 对于用户登录:您只需要插件生成的 cookie ID,例如在我的情况下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 发出请求。

这仅用于注册用户,将使用另一个插件JSON APi Auth来登录用户。

这些是基础知识,因为我现在没有太多时间,当我这样做时,我将提供完整的细节和示例。但现在这应该做

于 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

尝试WP REST User它具有创建用户和重置密码功能

对于登录,如果您需要对用户功能进行高级控制,请使用AAM

于 2020-09-20T20:27:13.807 回答