core
core copied to clipboard
OAuth-Unterstützung
Ich fände es wichtig, wenn Contao endlich mal eine OAuth-Unterstützung erhielte. Dabei stelle ich mir zum einen folgendes vor:
- Anmeldung mit Twitter
- Anmeldung mit Facebook
- Anmeldung mit Google+
Aber ich möchte darüber hinaus noch ein anderes Szenario abbilden:
- Eine zentrale Contao-Installation verwaltet Mitglieder
- Eine andere Contao-Installation soll gegen diese zentrale Installation Mitglieder mittels OAuth authentifizieren können
- Wurde ein Mitglied authentifiziert, soll ein Abgleich der Daten aus
tl_member
erfolgen, beispielsweise über einen JSON-Datensatz
Das Problem daran ist, dass ich noch nie mit OAuth gearbeitet habe. Hat jemand von euch schon Erfahrung damit und kann uns mit seinem Fachwissen unterstützen? Sind die beschriebenen Szenarien realistisch?
+1
Ich finde das hat nichts mit OAuth zu tun. Die Contao User sollten so umgebaut werden, dass eine Authentifizierung und Autorisierung universell möglich ist. @LeoUnglaub wollte dazu ja ein Konzept machen.
Ob danach dann ein OAuth-"Treiber" für Facebook dazu gefügt wird ist eine andere Geschichte. Man kann das ja aktuell schon bauen, aber es ist einfach nicht schön dass die Daten in tl_member
eingefügt werden müssen...
https://github.com/bit3/contao-facebook-connect https://github.com/bit3/contao-twitter-connect/tree/develop
Ja kann ich helfen, hab da schon 2 Extensions für geschrieben :-)
Grundsätzlich ist das alles möglich, was OAuth allerdings nicht liefert ist ein Datenabgleich, der muss spezifisch pro Platform entwickelt werden. Grundsätzlich liefert OAuth aber nur die reine Authentifizierung, die Autorisierung muss wiederum innerhalb von Contao passieren und da scheiden sich aktuell die Geister. Bei meinen Extensions wird bspw. ein Account angelegt und mit E-Mail und Benutzername befüllt, soweit verfügbar.
Ach ja, man muss auch unterscheiden zwischen OAuth 1 und OAuth 2, Twitter verwendet bspw. noch Version 1, Facebook (und ich glaub Google) verwenden Version 2.
Wäre das nicht ne Aufgabe für ne Erweiterung und nicht für den Core? Ich habe keinen Kunden, der so etwas wollte.
+1 Habe das immer wieder als Feature Request.
Ich stimme @Aybee zu. Das sollte dann eine abschalltbare Erweiterung sein.
Ohne Änderungen am Core geht das wohl nicht ;)
@Toflar das geht sicherlich ohne Anpassung am Core. Zumindest was @leofeyer beschreibt (Schreiben in tl_member
).
Ohne Änderungen am Core geht das wohl nicht ;)
@Toflar warum hab ich dann 2 funktionierende Extensions die genau das liefern? :-P
Ich meine wenn man es nicht an ein Mitglied binden will ;)
@Toflar ja, das geht mit dem Contao Auth aktuell so nicht, dass stimmt.
Ein großes +1 hierfür von meiner Seite :)
Ergänzen möchte ich:
- Login via GitHub (BE)
In Contao 4 ist das mit der Symfony Firewall wohl nun leichter zu implementieren (ohne es an ein Mitglied zu binden), nehme ich an.
Wir (@craffft) haben eine OAuth2 Authentifizierung basierend auf dem Symfony FOSOAuthServerBundle für Contao 4 umgesetzt. Dabei wird momentan die tl_member Tabelle verwendet. Könnt ihr euch ja mal anschauen. Habe gerade gestern die Version 1.0.0 deployed.
https://github.com/Craffft/contao-oauth2-bundle
Very nice!
Please update your database with the following command, because the contao install tool will not generate the symfony relevant tables.
Kleiner Hinweis, in Contao 4.3 ist das geändert, sodass sowohl das Install-Tool auch ORM-Tabellen kennt, also auch doctrine:schema:update
die Änderungen aus Contao. Das könnte bei dir zu Problemen führen weil du die Definition sowohl im DCA als auch im Entity hast.