2016-06-07 9 views
7

Ich habe einen oauth Provider mit django-oauth-toolkit gebaut.Aktivieren Oauth Login mit Django-Allauth, aber ein benutzerdefinierter Anbieter

Ich möchte nun Benutzern meiner Client-Anwendung erlauben, sich über diesen Anbieter einzuloggen.

Mein Verständnis ist, dass django-allauth das ideale Werkzeug dafür ist.

Ich sehe, dass django-allauth einen speziellen Ordner für jeden Anbieter hat, und in diesem Ordner gibt es eine spezielle Dateien namens provider.py. Beispiel: this ist der Ordner für den Github-Anbieter.

Sollte ich etwas ähnliches zu diesem Ordner speziell für meinen benutzerdefinierten Anbieter erstellen? Oder gibt es einen einfacheren/besseren Weg, dies zu tun?

+0

Hallo dort! Ich fange gerade ein neues Projekt an und habe ähnliches Problem, dass ich django-oauth-toolkit für Versorger und django-allauth für Verbraucher verwenden möchte. Haben Sie eine Anleitung oder ein Dokument dazu gefunden? – Norak

+0

Nein leider :( – Brachamul

+0

Danke für die Antwort sowieso. – Norak

Antwort

0

Basierend auf was die Dokumentation sagt, entdeckt es neue Anbieter basierend auf INSTALLED_APPS. Sie benötigen also eine Django-App, die ja die gleiche Struktur hat und eine providers.py enthält. Sie sollten also in der Lage sein, eine neue App oder eine bestehende App zu verwenden. Diese

ist vom docs:

Wenn eine bestehende Anbieter nicht ganz Ihren Bedürfnissen gerecht zu werden, können Sie selbst einen Anbieter gestalten benötigen finden.

Dies kann erreicht werden, indem ein existierender Provider unterklassifiziert wird und Ihre Änderungen dort vorgenommen werden. Anbieter werden als Django-Anwendungen definiert. Wenn Sie also eines davon anpassen, bedeutet das normalerweise, dass Sie eine Django-Anwendung in erstellen, die Ihre angepassten Dateien urls.py, views.py und provider.py enthält. Welches Verhalten Sie anpassen können, liegt außerhalb des Bereichs dieser Dokumentation.

Auch eine Notiz über den Inhalt der providers.py Datei:

In Ihrer provider.py Datei benötigen Sie die Provider-Klasse zu belichten durch ein Modulebene Attribut namens provider_classes mit mit Ihrem benutzerdefinierte Klassen in einer Liste. Dadurch kann Ihr benutzerdefinierter Anbieter auf der Grundlage der Einstellung INSTALLED_APPS ordnungsgemäß registriert werden.