Come utilizzare WP-REST API per effettuare il login dell'utente e ottenere i dati utente per un'app Android?
Voglio utilizzare l'API REST di WordPress per effettuare il login e ottenere i dati utente su un'app Android.
Sto utilizzando la tabella wp_users per gli utenti e una tabella personalizzata per le informazioni utente.
Ho provato a scrivere la mia API REST ma per farlo dovrei rendere $wpdb accessibile al di fuori dell'installazione WordPress.
Per favore, fornite una vostra soluzione che includa anche una funzionalità di API-KEY o qualcosa di simile.
Grazie

Ho trovato la soluzione più semplice utilizzando il plugin WP-REST API, prima configura questo nel tuo ambiente:
1.) Nel file functions.php
del tuo tema, registra gli hook degli endpoint API:
add_action( 'rest_api_init', 'register_api_hooks' );
// Endpoint API personalizzati per WP-REST API
function register_api_hooks() {
register_rest_route(
'custom-plugin', '/login/',
array(
'methods' => 'POST',
'callback' => 'login',
)
);
function login() {
$output = array();
// La tua logica va qui
return $output;
}
2.) Di default, se hai i pretty permalink abilitati, la REST API di WordPress "risiede" in /wp-json/. Quindi l'endpoint API sarà accessibile all'indirizzo tuodominio.com/wp-json/custom-plugin/login
con una richiesta POST
.
Nota che custom-plugin/login è effettivamente definito in register_rest_route nella funzione PHP register_api_hooks()
Per la chiave API sto usando i Wordpress Nonces - abbastanza semplice come spiegato nella mia discussione qui. Spero che queste risposte siano utili per tutti gli sviluppatori full stack che sono nuovi alla REST API di WordPress

Se vuoi semplicemente effettuare il login dell'utente e ottenere i dettagli dell'utente, puoi utilizzare un eccellente plugin chiamato "JSON API AUTH"
https://wordpress.org/plugins/json-api-auth/
Sono disponibili i seguenti metodi: validate_auth_cookie
, generate_auth_cookie
, clear_auth_cookie
, get_currentuserinfo
Il nonce può essere creato chiamando http://localhost/api/get_nonce/?controller=auth&method=generate_auth_cookie
Puoi poi utilizzare il valore 'nonce' per generare il cookie. http://localhost/api/auth/generate_auth_cookie/?nonce=f4320f4a67&username=Catherine&password=password-here
Utilizza il cookie in questo modo con le altre chiamate al controller: http://localhost/api/contoller-name/method-name/?cookie=Catherine|1392018917|3ad7b9f1c5c2cccb569c8a82119ca4fd
