Wordpress Login

  • Hallo,
    ich bin neu hier und weiß nicht genau in welche Gruppe ich diese technische Frage schreiben soll. Bitte ggf. verschieben.

    Also, zu meiner Frage: Ich bin gerade am programmieren einer kleinen Zusatzfunktion zur aktuellen WordPress Version. Mein Script hängt sich in das Loginsystem von WordPress ein. Der eingegebene Benutzername und das eingegeben Passwort wird per "$_POST['log']" und "$_POST['pwd']" abgefragt. Nach erfolgreichem durchlaufen meines Scripts soll der User angemeldet werden.
    Welche Variable muss man setzen bzw. ändern, damit WordPress den Client als "angemeldet" ansieht?

    Ich denke da an etwa sowas:

    PHP
    $login = true
    $login_user = test

    Vielen Dank schon mal.

    Ich muss noch dazu sagen, dass der User der angemeldet werden soll nicht in der WordPress-Datenbank vorhanden ist.
    Das Script von mir liest aus einer XML-Datei die User aus meinem Homepagelogin aus und alle darin enthaltenen Benutzer sollen mit dem gleichen Passwd ins Blog kommen ohne sich neu registrieren zu müssen.

    Gruß
    blub123456

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Genau kann ich Dir das auch nicht sagen. Nur soviel, sei sehr vorsichtig, was Du da tust, dass Du mit sowas keine Sicherheitslücken aufreißt. Davon abgesehen wirst Du Dir das irgendwo abschauen müssen, denke ich. Entweder in WP selbst oder aber in einem Plugin, welches ebenfalls den Login modifiziert. Es müsste z.B. Plugins geben, die WP mit LDAP integrieren, denke ich, die müssten ja das gleiche tun.

  • Ein sehr gefährliches Unterfangen, wie Ammaletu schon sagte. Aber niemals macht macht man das über POST oder GET Variablen. Das hat WP bereits vorgesehen, du kannst das per Plugin abfangen. Die Authentifizierung läuft über diese Funktion in pluggable.php und kann per Plugin ersetzt werden:

    Wenn dein Plugin also eine Funktion

    Code
    function wp_authenticate($username, $password)

    implementiert, kannst du Einfluss nehmen auf die Anmeldung. Deine Funktion sollte den $username und $password mit deiner XML Datei abklären und im Falle korrekter Erkennung den Benutzernamen und das Passwort auf den WP Benutzer setzen (weil beides als Referenz übergeben wird, ändert sich das damit auch).
    Also im Grunde baust du eine Kopie der o.g. Funktion, die deinen Check direkt vor der Zeile

    Code
    [COLOR=#000000][COLOR=#0000cc]$user [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#0000cc]get_userdatabylogin[/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc]$username[/COLOR][COLOR=#006600]);[/COLOR][/COLOR]

    einschiebt. Im Fehlerfall sollte dein Check einen ungültigen Benutzer/Passwort setzen, im Erfolgsfalle den von dir gewünschten Benutzer/Passwort setzen und in beiden Fällen dann den restlichen Code normal durchlaufen.

    Auf diese Weise kann man alle möglichen Authentifizierungssysteme integrieren (LDAP, Corba, Kerberos usw...)

  • Hallo codestyling,
    vielen Dank für deine Antwort. Sie hat mich schon weiter gebracht. Nur ein Problem habe ich noch. Die User, die in der XML stehen sind (logischerweise) nicht in der WordPress User Database. Ich möchte aber bei erstellten Kommentaren sehen können, wer diesen gemacht hat.
    Wenn ich also so vorgehe, wie du es mit deinem Scriptbeispiel gezeigt hast, weis ich nachher nicht, wer ein Kommentar geschrieben hat. Ich sehe nur, dass es der gleiche User war.

    Kann man irgendwie dem Loginsystem von WordPress vorgaukeln, es sei der User "auth_ok" damit es ihn anmeldet, aber den Cookie mit dem namen "auth_ok" durch den User aus meiner XML zu ersetzen? Somit wäre das Loginsys mit User "auth_ok" zufrieden, da dieser ja in der WordPress DB steht und ich hätte meine Identifikation indem ich den Cookie mit dem Namen geändert hab.

    Ich hoffe ich habe es nicht unverständlich formuliert. Es ist nämlich schwierig mein vorhaben hier in schriftlicher Form zu beschreiben.

    Gruß
    blub123456

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!