wake-up-neo.net

Wie benutze ich die WP REST API-Plugin und das OAuth Server-Plugin zur Registrierung und Anmeldung?

Gibt es Beispielprojekte, die dasselbe tun?

Ich möchte mich über die API anmelden und für Konten auf meiner Website registrieren können.

4
Louis93

Ich weiß, es ist ein bisschen weit hergeholt, könnte aber helfen. Für alle, die nach einer WP REST API-Implementierung mit JWT suchen, ist hier unsere Lösung.

Fügen Sie es Ihrer function.php hinzu

add_action('rest_api_init', 'wp_rest_user_endpoints');
/**
 * Register a new user
 *
 * @param  WP_REST_Request $request Full details about the request.
 * @return array $args.
 **/
function wp_rest_user_endpoints($request) {
  /**
   * Handle Register User request.
   */
  register_rest_route('wp/v2', 'users/register', array(
    'methods' => 'POST',
    'callback' => 'wc_rest_user_endpoint_handler',
  ));
}
function wc_rest_user_endpoint_handler($request = null) {
  $response = array();
  $parameters = $request->get_json_params();
  $username = sanitize_text_field($parameters['username']);
  $email = sanitize_text_field($parameters['email']);
  $password = sanitize_text_field($parameters['password']);
  // $role = sanitize_text_field($parameters['role']);
  $error = new WP_Error();
  if (empty($username)) {
    $error->add(400, __("Username field 'username' is required.", 'wp-rest-user'), array('status' => 400));
    return $error;
  }
  if (empty($email)) {
    $error->add(401, __("Email field 'email' is required.", 'wp-rest-user'), array('status' => 400));
    return $error;
  }
  if (empty($password)) {
    $error->add(404, __("Password field 'password' is required.", 'wp-rest-user'), array('status' => 400));
    return $error;
  }
  // if (empty($role)) {
  //  $role = 'subscriber';
  // } else {
  //     if ($GLOBALS['wp_roles']->is_role($role)) {
  //      // Silence is gold
  //     } else {
  //    $error->add(405, __("Role field 'role' is not a valid. Check your User Roles from Dashboard.", 'wp_rest_user'), array('status' => 400));
  //    return $error;
  //     }
  // }
  $user_id = username_exists($username);
  if (!$user_id && email_exists($email) == false) {
    $user_id = wp_create_user($username, $password, $email);
    if (!is_wp_error($user_id)) {
      // Ger User Meta Data (Sensitive, Password included. DO NOT pass to front end.)
      $user = get_user_by('id', $user_id);
      // $user->set_role($role);
      $user->set_role('subscriber');
      // WooCommerce specific code
      if (class_exists('WooCommerce')) {
        $user->set_role('customer');
      }
      // Ger User Data (Non-Sensitive, Pass to front end.)
      $response['code'] = 200;
      $response['message'] = __("User '" . $username . "' Registration was Successful", "wp-rest-user");
    } else {
      return $user_id;
    }
  } else {
    $error->add(406, __("Email already exists, please try 'Reset Password'", 'wp-rest-user'), array('status' => 400));
    return $error;
  }
  return new WP_REST_Response($response, 123);
}

Meiner Meinung nach wäre eine bessere Möglichkeit, die Zusatzfunktion als separates Plugin einzuschließen. Auch wenn Ihr Benutzer das Thema geändert hat, sind Ihre API-Aufrufe nicht betroffen.

Deshalb habe ich ein Plugin für die Benutzerregistrierung über die REST API in WordPress entwickelt. Besser noch, es unterstützt auch das Erstellen von "Kunden" für WooCommerce!

WP REST Benutzer , probieren Sie es aus, wenn Sie möchten.

2
Jack Song

Es gibt viele Beispiele für die Benutzerregistrierung mit der WP REST-API und der OAuth-Serverimplementierung für die WP-API http: //oauth1.wp- api.org/ .

Ich bin mir sicher, dass es weniger als 6 Monate her ist, als Sie ursprünglich gepostet haben, aber hier sind einige großartige Beispiele, die Sie zum Laufen bringen werden.

Es gibt auch ein paar Plugins, die auftauchen.

1
Joe Dooley