Zaraz zacznę pracować nad prototypem dla klienta - a jedną z wymaganych funkcji jest integracja z wewnętrznym systemem uwierzytelniania / rejestracji użytkowników.
Ten system będzie działał jako autorytatywna baza danych użytkowników i zapewni interfejs RESTful do tworzenia nowych użytkowników i uwierzytelniania prawidłowych użytkowników.
Muszę być w stanie utworzyć nowych użytkowników w WP i w ramach tego procesu nawiązać połączenie z zewnętrznym interfejsem API uwierzytelniania, aby utworzyć / zweryfikować tego użytkownika.
Osoba, która jest prawidłowym użytkownikiem, ale nie jest znana WP, powinna mieć możliwość zalogowania się, aby skomentować, bez konieczności rejestracji na stronie WP.
Osoba zalogowana do ogólnej witryny powinna również zostać automatycznie zalogowana do WordPress.
Myślę, że następująca jest droga.
Dla (1) - czy mogę użyć haka rejestracyjnego?
Dla (2) - Zakładam, że podpinam filtr uwierzytelniający - tzn. Gdy ktoś próbuje się zalogować, wychwytuję go, wykonuję połączenie z systemem zewnętrznym, a następnie albo przetwarzam login WP, albo przekierowuję go do procesu rejestracji, gdzie ( 1) trwa.
Dla (3) - przeczytaj plik cookie logowania ustawiony przez stronę główną i przejdź do (2)?
Chyba będę musiał także wstawić rekord do tabeli użytkowników i usermeta.
Czy powyższe ma sens - czy nie pomyślałem o czymś. Każdy ma jakieś dobre zasoby do pomocy w tym (@hakre - Widziałem, że trochę nad tym pracowałeś !!).
Aktualizacja
Więc wciąż walę z tym trochę głową, w zasadzie próbuję podłączyć się do filtra uwierzytelniania i użyć go do:
- sprawdź, czy ustawiony jest plik cookie logowania do witryny „wzorcowej”, a jeśli tak, dokonaj ponownej walidacji względem interfejsu API uwierzytelniania, a jeśli jest prawidłowy, wymuś logowanie WP przy
wp_signon()
użyciu informacji zawartych w pliku cookie witryny wzorcowej (adres e-mail i hasło z hasłem) jako poświadczenia dla WP - jeśli plik cookie nie jest ustawiony, przekieruj na główną stronę logowania i uzyskaj login / rejestrację, a następnie wróć do kroku 1
- jeśli nie ma użytkownika WP, gdy istnieje uwierzytelniony użytkownik serwisu głównego, utwórz go, a następnie wpisz „przezroczyste” logowanie (tzn. aby użytkownik nie widział formularza logowania WP)
Zasadniczo chcę całkowicie ukryć formularz logowania WP dla użytkowników, którzy będą głównie komentować, a później znaleźć sposób, aby umożliwić autorom i administratorowi bezpośredni dostęp do niego.
Wszystko idzie powoli, oto, z czym mógłbym skorzystać:
czy odpowiedni jest filtr uwierzytelniający? Wygląda na to, że nie jest wywoływany we wszystkich sytuacjach, których oczekiwałbym - np. Meta widget wyświetla linki do logowania / wylogowywania bez uwierzytelniania podczas uruchamiania haka
Mogę
wp_signon()
zwrócićWP_User
obiekt (wskazując powodzenie), ale nie wpływa to na status zalogowanego użytkownika - tzn. meta widget nadal będzie wyświetlał „Logowanie” nawet po odświeżeniu.
Każda pomoc z wdzięcznością otrzymana :)