Moja witryna musi zostać zintegrowana z oprogramowaniem innej firmy, która będzie działać w jej własnej subdomenie, hostowanej przez firmę produkującą oprogramowanie. Muszę podać programistom zewnętrznym punkt końcowy, którego mogą używać do nawiązywania połączeń API (do mojej witryny wordpress), aby umożliwić użytkownikom mojej witryny dostęp do subdomeny.
Druga witryna musi uwierzytelniać użytkowników z mojej witryny za pomocą interfejsu API.
Nie jestem pewien, od czego zacząć, ale mam wrażenie, że ludzie inteligentniejsi ode mnie to odkryli. Z góry dziękuję!
api
authentication
customization
single-sign-on
emersonthis
źródło
źródło
Odpowiedzi:
Problemy ze skryptami między witrynami
Nie można przenosić plików cookie uwierzytelniania WP między domenami. Nie chcesz również przechowywać haseł w postaci zwykłego tekstu do logowania programowego do innej instalacji WP. Musisz więc zalogować użytkowników do WordPress, a następnie uzyskać dostęp do ich statusu logowania za pośrednictwem punktu końcowego interfejsu API z witryny innej firmy. Dzięki temu WordPress obsługuje wszystkie uwierzytelnienia. Jest dość bezpieczny, ponieważ użytkownik będzie musiał fizycznie zalogować się po stronie WP, aby punkt końcowy interfejsu API mógł udostępnić dane stronie trzeciej.
Utwórz punkt końcowy interfejsu API
Sprawdź ten artykuł, który właśnie napisałem tutaj: http://coderrr.com/create-an-api-endpoint-in-wordpress/
Demonstrację kodu można również zobaczyć tutaj: https://gist.github.com/2982319
Będziesz musiał zrozumieć logikę dla własnych potrzeb aplikacji, ale pozwoli ci to stworzyć punkt końcowy, w którym możesz obsłużyć wszystko, co chcesz od strony WordPress.
Ponieważ używasz WordPress jako strony uwierzytelniającej, możesz użyć czeku takiego jak is_user_logged_in (). Jeśli są zalogowani, zwróć obiekt użytkownika stronie trzeciej, podając wszelkie potrzebne informacje.
Logowanie się od strony trzeciej
Firmy zewnętrzne mogą połączyć się z Twoją stroną logowania, aby zapewnić bezproblemową obsługę za pomocą zapytania redirect_to var. Po zalogowaniu przekaże je z powrotem do witryny innej firmy.
Zdalne logowanie
Jeśli musisz zalogować użytkowników do WordPress z witryny innej firmy, możesz użyć kilku prostych funkcji WP wymienionych na tej stronie: http://kuttler.eu/code/log-in-a-wordpress-user-programmatically/
Na pewno będziesz musiał użyć wspólnego sekretu i utworzyć hash oparty na czasie, aby zachować bezpieczeństwo. Zasadniczo wygląda to tak:
Firma zewnętrzna wysyła żądanie ze znacznikiem czasu i tokenem wygenerowanym przez wspólny klucz tajny:
Instalacja WordPress otrzymuje żądanie:
źródło
counter
zamiasttime()
i przekazać go wraz z żądaniem. Obie strony przekazują ostatni licznik, a gdy api otrzyma żądanie z nowym licznikiem, sprawdza, czy nowy jest większy niż ostatni. W ten sposób opóźnienie nie może wyrządzić żadnej szkody.