Wie meldet man sich über eine REST-Schnittstelle von WordPress ab?

Lesezeit: 2 Minuten

Benutzeravatar von Rayo
Rayo

Anwendungsfall: Ich implementiere eine SSO-Lösung für eine WordPress-Site, bei der der Benutzer zuerst auf Site A (Nicht-WordPress) authentifiziert wird. Bei erfolgreicher Authentifizierung wird der Benutzer automatisch bei der WP-Site angemeldet, indem er eine von mir geschriebene benutzerdefinierte REST-Schnittstelle aufruft. Während der Benutzer bei Site A angemeldet bleibt, darf der Benutzer Links auf Site A anklicken, die zu Seiten auf der WP-Site weiterleiten. Wenn sich der Benutzer von Site A abmeldet, muss ich auch die WP-Sitzung beenden, damit jeder weitere Versuch, Seiten auf dieser Site anzuzeigen, nicht zugelassen wird und der Benutzer zurück zum Anmeldebildschirm auf Site A umgeleitet wird.

Ich habe ein WP-Plugin geschrieben, das 3 REST-Schnittstellen implementiert:

  • Um einen Benutzer auf der WP-Site zu registrieren
  • Um den Benutzer automatisch auf der WP-Site anzumelden
  • Um den Benutzer auf der WP-Site abzumelden

Die ersten beiden funktionieren einwandfrei. Ich kann den letzten nicht zum Laufen bringen und das ist der Schwerpunkt dieser Frage.

Mir ist bewusst, dass es verschiedene Plugin-Lösungen gibt, die vorgeben, verschiedene SSO-Lösungen zu unterstützen, aber aus dem einen oder anderen Grund nicht ganz funktioniert haben. Ich bin nicht Suche nach Vorschlägen zu Plugins, die ich verwenden könnte.

Um den Benutzer abzumelden habe ich folgendes PHP-Snippet geschrieben:

function logout_user($request) {
    header("Access-Control-Allow-Origin: *");
    wp_logout();
}
    
add_action('rest_api_init', function() {
    register_rest_route('mycompany/v1', '/logoutuser', array(
        'methods' => 'GET, OPTIONS',
        'callback' => 'logout_user'));
});

Ich habe überprüft, dass diese Schnittstelle tatsächlich aufgerufen wird, aber der Benutzer nicht abgemeldet ist, dh während der Browser noch geöffnet ist, kann ich erfolgreich zu meiner WP-Site navigieren und sehen, dass mein Status angemeldet ist. Nur wenn ich schließe und erneut -Öffnen des Browsers wird die WP-Session beendet. Wie kann ich das zum Laufen bringen, ohne vorher den Browser schließen zu müssen?

  • Hast du es herausgefunden? Ich stehe vor dem gleichen Problem.

    – AleJuliet

    14. März um 11:50 Uhr

1428340cookie-checkWie meldet man sich über eine REST-Schnittstelle von WordPress ab?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy