it-swarm.com.de

Ist es sicher, einen Benutzer mit AJAX manuell anzumelden?

Ich füge meinem Theme ein modales Login hinzu.

Der direkteste Weg besteht darin, eine Vorlage zu erstellen und darin wp_login_form(); aufzunehmen. Dadurch wird die Kernanmeldung geladen, die später mithilfe von CSS oder jQuery angepasst werden kann.

Die Seite muss jedoch neu geladen werden, um die Anmeldeinformationen zu überprüfen. Mein Gedanke war, den Benutzernamen und das gehashte Passwort mit einer AJAX -Anforderung zu senden und den Benutzer über wp_singon() anzumelden.

Jetzt sind meine Fragen:

  1. Ist das ungefährlich? WordPress selbst sendet das Passwort auf irgendeine Weise an den Server, aber ich bin mir nicht sicher, ob es das ist.
  2. Wenn dies in Ordnung ist, sollte ich admin-ajax verwenden? oder kann die REST-API auch die Anmeldung übernehmen?
  3. Wenn alles in Ordnung ist, dann eine letzte Frage. Ist wp_signon() die richtige Funktion für die Anmeldung? Ich dachte, wp_set_auth_cookie() könnte auch nützlich sein.

Vielen Dank!

1
Jack Johansson

Unter der Annahme, dass Sie keine dummen Dinge tun und die entsprechende API ordnungsgemäß verwenden, kann ein AJAX -Anmeldeformular so sicher sein wie das "Kern" -Anmeldeformular.

Die Art und Weise, wie Sie die Daten übertragen, ist für sich genommen nicht sehr wichtig. Sogar HTTP kann, obwohl Google und andere Personen behaupten, es sei unsicher, mit 2FA, Einmalpasswörtern sicher genug sein oder statt Coffee-Shop/WLAN/Netzwerk einfach eine eigene Mobilfunkverbindung verwenden. In jedem Fall entscheidet der Eigentümer der Website.

Für Punkt 3 ist wp_signon der richtige und von dort aus sollte die Authentifizierung und das Setzen von Cookies erfolgen.

Eine Sache, die Sie bei AJAX beachten sollten, ist, dass eine erfolgreiche Anmeldung den neuen Status in der Benutzeroberfläche nicht ohne zusätzliche Arbeit widerspiegelt. Der einfachste Weg ist wahrscheinlich, nur die Seite zu aktualisieren, die das gesamte AJAX Idee viel weniger ansprechend.

Ein weiteres Hindernis ist das Melden von Fehlern, wie z. B. eine Nichtübereinstimmung von Benutzern und Kennwörtern. Sie müssen eine Möglichkeit schaffen, die Anmeldefehler an das Front-End zu übertragen und generisch so zu gestalten, dass andere Plugins, die sich auf die Anmeldung beziehen, eigene Plugins hinzufügen können fehler.

Wenn es sich so anhört, als wäre ich gegen eine Anmeldung über AJAX, dann bin ich das, aber dies ist nur eine persönliche Meinung, es gibt nichts technisch Unmögliches oder Unsicheres.

2
Mark Kaplun