Größtmögliche Integration von WoltLab in Website

  • Affected Version
    WoltLab Suite 3.1

    Hallo zusammen,


    ich entwickel gerade ein Browsergame und habe mir als Form nun WoltLab angelegt, da ich als Nutzer schon sehr viele positive Erfahrungen damit machen konnte und nun als Admin echt erstaunt über die Vielzahl an Einstellungsmöglichkeiten bin.


    Folgendes habe ich vor: Das Forum soll eng mit dem Spiel verknüpft sein. Ich möchte per Single-Sign-On die Nutzer automatisch im Forum anmelden, sobald sie für mein Spiel registriert sind.

    Dazu habe ich bereits einige Threads gefunden. Allerdings nur Lösungen, mit denen der Nutzer registriert wird, nicht aber direkt angemeldet.

    Geht das? Registrieren im Forum per Schnittstelle mit direktem Login im Forum ohne erneute Eingabe des Passworts?


    Zudem möchte ich die Benachrichtigungen im Forum auch in meinem Spiel mit einer Glocke anzeigen, kann ich diese über eine API auslesen um sie bei mir zu verwenden und auch als gelesen zu markieren?


    In meinem Spiel haben die Nutzer ein eigenes Profil mit Daten wie Geburtsdatum, Geschlecht etc. Kann ich diese automatisch ins Forum übernehmen? Keiner will das alles doppelt ausfüllen und andersrum - Daten im Forum pflegen und ins Spiel übernehmen will ich nicht, da hier schon einiges eingetragen wurde.


    Kann ich in der Usertabelle problemlos eine neue Spalte mit einer ID einfügen, mit der der Forenaccount mit dem Spielaccount verknüpft wird?


    Vielen Dank im voraus für eure Nachrichten


    (Habe hier als Label Core gewählt, da die meisten meiner Fragen sich auf die Nutzer beziehen, deren Daten ja vermutlich in der Core Anwendung gespeichert werden)

  • Ein SSO ist recht aufwendig. Entweder bindest du die PHP-Dateien des Forums ein rufst die Login-Methoden darin auf (hierfür gibt es mMn bereits ein paar Beispiele hier, oder du erstellst Sessions selber und schreibst diese in die Datenbank des Forums (siehe GitHub).


    Ansonsten kann ich für die gemeinsame Nutzung des Logins diverse OAuth-Plugins anbieten, je nachdem, welches System dein OAuth-Server sein soll, falls OAuth für dich in Frage käme.

  • Falls jemand das selbe Problem hat: Wir konnten es wie folgt lösen:


    PHP: changeForumPassword.php
    //Wenn Foruenuserid vorhanden
    if ($this->user->getForumUserID() != NULL) {
        $userAction = new UserAction(array($this->user->getForumUserID()), 'update', array(
            'data' => array(
                'password' => //Hier aussuchen wie man ein Passwort generieren möchte etc.
            )
        ));
        $userAction->executeAction();
    }
    PHP: changeForumEmail.php
    //Wenn Foruenuserid vorhanden
    if ($this->user->getForumUserID() != NULL) {
        $userAction = new UserAction(array($this->user->getForumUserID()), 'update', array(
            'data' => array(
                'email' => $this->user->getEmail()
            )
        ));
        $userAction->executeAction();
    }

    An den Autologin werden bei uns die Daten per POST übergeben, das kann man sich aber je nach Bedarf anpassen.

    Ich habe hier zum besseren Verständnis einzelne Methoden in Dateien ausgelagert. Wir haben das ganze aber objektorientiert gelöst.


    Ich hoffe, dass dieses Realbeispiel dem ein oder anderen Hilft die API vernünftig zu verwenden um automatische Forenaccounts zu generieren und sich in diesem auch automatisch einloggen zu lassen.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!