Drittanbieter-Logins reloaded

  • Moin,


    ich wollte einfach mal aus dem Nähkästchen plaudern und euch einen kleinen Einblick darauf geben, woran ich die letzten Tage gearbeitet habe. Grob zusammengefasst bin ich dabei, die Integration neuer Drittanbieter signifikant zu vereinfachen. Dazu habe ich eine Basis geschaffen, auf der künftig all unsere Drittanbieter-Integrationen basieren werden. Sämtliche Grundlogik wurde zentralisiert und als Entwickler muss man sich hier um fast nichts mehr selbst kümmern.


    Ich habe zu Demonstrationszwecken mal die WCF-/WSC-internen Drittanbieter umgeschrieben:

    • Facebook

      • Original: WCF/FacebookAuthAction.class.php at master · WoltLab/WCF · GitHub
      • Neu:
    • Google

      • Original: WCF/GoogleAuthAction.class.php at master · WoltLab/WCF · GitHub
      • Neu:
    • Twitter

      • Original: WCF/TwitterAuthAction.class.php at master · WoltLab/WCF · GitHub
      • Neu:

    Das ist der gegenwärtige Stand und da das Ganze noch in der Entwicklung steckt, auch nicht der endgültige, obgleich es so bereits funktioniert.


    Sinn und Zweck soll sein, OAuth1- und OAuth2-Anbieter technisch zu vereinheitlichen und dem Entwickler zwar sämtliche Freiheiten zu lassen, aber die Arbeit weitesgehend abzunehmen, da sich an der eigentlichen Logik im Normalfall nichts ändert und das optimalerweise auch so bleibt.


    Sobald das Ganze marktreif ist, lassen sich etliche Drittanbieter-Integrationen im Handumdrehen aus dem Boden stampfen. Bisher ist das doch recht mühselig.

  • eine Frage für mich zum besseren Verständnis. Drittanbieter Login bedeutet das man sich nur darüber registrieren kann, aber nicht über Facebook und Co man sich einloggen kann oder ?

    viele Grüße ... Ute

  • Du meinst man kann sich nach einer Registrierung ganz bequem, wenn man Bei Facebook eingeloggt ist, in mein Forum immer einloggen ?

    viele Grüße ... Ute

  • ich weiß nicht, deswegen frage ich ja. Ich hatte das mal drin, aber hatte es wieder entfernt, weil die User irritiert waren. Sie hatten sich darüber eingeloggt, aber das ging nicht.

    viele Grüße ... Ute

  • Kannst du ja hier im Forum testen. Hier deinen Facebook-Account verknüpfen, danach ausloggen und im Login-Screen Facebook zum Einloggen wählen.

  • habe ich gleich gemacht und man kann sich danach nicht über Facebook einloggen, sondern mir wird gesagt, das ich mich mit meinem Facebookaccount registrieren kann ;-)

    viele Grüße ... Ute

  • stimmt .. ich habe das Häkchen im Profil vergessen zu setzen. Jetzt gehts. :-)

    viele Grüße ... Ute

  • Ich habe nun relativ drastische Maßnahmen ergriffen und für die Authentifizierung über Drittanbieter einen zweiten RegisterForm-Controller auf Basis des Originals gebaut, wodurch ich das ursprüngliche Verhalten des WSC in Bezug auf die Drittanbieter-Authentifizierung zum Einen signifikant vereinfacht- zum Anderen "korrekter" gemacht habe. Denn wenn es bisher etwas gab, was mich extrem gestört hat, so waren das "Features" wie etwa


    - der Verlust sämtlicher Drittanbieter-Benutzer-Informationen beim Neuladen des Formulars
    - der unnötig hohe Aufwand, der betrieben werden musste, um seine eigene Drittanbieter-Implementierung genau so funktionieren zu lassen, wie die bereits verbauten Drittanbieter funktionieren


    Das Ganze hat an für sich einen Haken: Erweiterungen, die explizit RegisterForm oder das Template register ansprechen, müssten entsprechend angepasst werden. Aber davon gibt es meines Wissens nach nicht allzu viele, sodass das durchaus vertretbar ist.


    Weiter geht's...

  • Mit den ganzen Umbauten macht das jetzt auch Spaß. Neue Drittanbieter sind binnen 2 Minuten integriert:



    Und am Ende ist für Jeden etwas dabei :)