Configurare l'Autenticazione WordPress tramite API Esterna
Esiste un sito non WordPress e ho bisogno che i loro utenti possano accedere al mio nuovo sito WordPress utilizzando le stesse credenziali che già possiedono.
Mi è stato fornito un endpoint (www.example-api.com/token) e le credenziali di accesso (email e password) che restituiscono un token (e altri dettagli) come risposta.
Ho letto riguardo OAuth e la maggior parte delle risorse che trovo riguardano problemi opposti (come accedere a un sito non WordPress utilizzando le credenziali del sito WordPress). Non ho accesso all'altro sito e vedo che richiede una configurazione lì, quindi devo escludere questa opzione?
Mi sono imbattuto nella possibilità di sovrascrivere wp_authenticate tramite un plugin personalizzato, che ho già configurato, ma sono bloccato su cosa e COME procedere effettivamente.
Qualche guida o suggerimento per questo?

Aggiornamento: Ho pubblicato un post sul blog per spiegarlo meglio :)
Sono riuscito a farlo utilizzando il filtro authenticate
di WP all'interno di un nuovo plugin; gran parte del lavoro è stato guidato da questo tutorial di Ben Lobaugh. I punti principali del plugin:
- Creare una funzione per le chiamate API utilizzando cURL (puoi ottenere i codici guida da Postman durante il test se non li conosci già).
- Aggiungere un filtro che verifichi se la risposta della chiamata indica che l'utente esiste e ha accesso (nel mio caso, basato sul ruolo dell'utente).
- Sempre utilizzando il filtro, verificare se l'utente ha già un account sul sito WP – in caso contrario, crearne uno per loro utilizzando
wp_insert_user
. Per chiarezza, ho utilizzato l'email e la password verificate dall'API perché WP richiede un utente registrato nel suo database. - Se l'utente esiste già nel database WP, assicurarsi che le credenziali siano le stesse utilizzando
wp_update_user
. Questo è utile per casi come quando cambiano i loro dettagli sul sito principale non-WP. - Opzionalmente, aggiungere una pagina delle impostazioni per il plugin. Nel mio caso, ho creato un campo per l'URL della richiesta seguendo questo tutorial di Bharat Pareek.

quindi hai implementato una sorta di SSO che è davvero l'unico modo per procedere. Ma la parte "se l'utente non esiste crea un account" suona molto sbagliato. Qualsiasi attacco brute force su larga scala potrebbe mettere in difficoltà il tuo WordPress

Puoi spiegarmelo meglio? Ero convinto di dover creare un utente locale su WordPress poiché la guida che ho seguito (primo link) diceva specificamente "WordPress richiede che un utente reale (utente WordPress) sia presente nel database di WordPress per poter eseguire operazioni su quell'utente".
Creo un nuovo utente solo se la risposta lo indica, registrandoli utilizzando anche la loro email e password dall'API.

forse è solo qualcosa nella tua descrizione, o un mio fraintendimento, ma sembra che tu crei un utente per ogni richiesta di "verifica".

Ah, credo di aver capito... autentichi gli utenti di WordPress sul sito esterno. In quel caso sì, la tua logica è corretta

Capisco. Sì, probabilmente è la formulazione. Lo modificherò per renderlo più chiaro. Grazie!

Grazie! Sto pensando di usare questo approccio. Come gestisci quando un utente cambia la password sull'applicazione non-WP? Usi semplicemente la WP REST API per aggiornarla?
