2010-02-15 5 views
35

Ich möchte Facebook Connect Login für meine Django-Site implementieren und habe die bereits vorhandenen Apps überprüft.Django Facebook Connect App Empfehlung

Bisher habe ich Django-Socialauth, django-socialregistration und django-facebookconnect für diesen Zweck gefunden.

Die Frage ist, welche zu wählen, und ich würde gerne von anderen Entwicklern hören, die Erfahrung mit einer dieser Anwendungen haben.

Es ist wichtig für mich, dass die Facebook Connect Login-App gut mit @login_required, mit dem Standard-Authentifizierungssystem und mit Django-Registrierung funktioniert.

Bitte teilen Sie Ihre Erfahrungen :)

Antwort

29

Update (11/26/2013): Ich aktualisiere meine Empfehlung. Da eine ausreichende Menge an Zeit vergangen ist, seit ich diese Antwort geschrieben habe, würde ich empfehlen python-social-auth oder django-allauth als die besten Werkzeuge für den Job. Sie sind aktive Projekte mit guter Dokumentation und Unterstützung für viel mehr als nur Facebook. Ich hatte Erfolg mit beiden.


Ich habe mit Anpassung django-socialregistration mit django-registration (0,8) das meiste Glück hatte. Da Sie mit der Django-Registrierung arbeiten, müssen Sie ein wenig arbeiten, da alle drei Pakete sowohl die Erstellung als auch die Authentifizierung des Benutzers übernehmen.

Ich wollte nur erklären, was getan werden muss, aber Sie haben mich inspiriert, endlich meine Version heraus zu bekommen: hello-social-registration.

Wie ich bereits erwähnt habe, trennt es die Registrierungsfunktionen von einem Django-Registrierungs-Backend und behandelt alle Autorisierungen selbst.Ich benutze das schon seit einer Weile in meiner Nearbeta-Anwendung ohne Probleme (ich habe es auch einem Freund gegeben, den ich vor ein paar Monaten benutzt habe, und er hat es ohne viel Modifikation zum Laufen gebracht).

Es ist definitiv noch nicht bereit, eine Plug-and-Play-wiederverwendbare Anwendung zu sein, aber, aber hoffentlich wird es Ihnen einige Einblicke geben. :)

+0

Sieht gut aus Bryan! Ich habe auch angefangen, mit der sozialen Registrierung zu arbeiten, es funktioniert nett. Ich frage mich, wie ich den Vor - und Nachnamen der Benutzer abrufen kann, die mit der Site über FB verbinden verbunden sind (aus Sicht) Ich brauche das, weil ich ihre ersten und Nachnamen in der Setup - Ansicht abrufen und füllen Sie die reguläre Vor- und Nachnamenfelder ihrer Django-Accounts beim Speichern des Benutzers. Vielen Dank! – Hellnar

+0

Ich bin noch nicht so weit gekommen, vielleicht sollte ich das als nächstes versuchen. :) Aber was Sie suchen, finden Sie hier: http://code.google.com/p/django-facebookconnect/source/browse/trunk/django-facebookconnect/facebookconnect/models.py#130 –

+0

Link ist gebrochen, Projekt scheint tot zu sein? – amrox

1

Hallo einen Blick auf fbconnect app nehmen, die wir (eigentlich Hernani, ein Mann in unserem Team) zusammen für osqa setzen (ein Klon von CNPROG).

Sie werden wahrscheinlich ein bisschen basteln müssen, um das an Ihre Bedürfnisse anzupassen. Es funktioniert mit @login_required Dekorateur und dem Standard django.contrib.auth System, aber wir verwenden django-registration nicht.

Unsere App funktioniert auch mit Openid und Passwort-Login, aber der Openid-Teil ist derzeit eng mit der Komponente Q & A gekoppelt.

Wir können es irgendwann in der Zukunft trennen, wenn jemand an "irgendetwas-Signin" Django Pluggable App interessiert sein könnte oder schon etwas besseres - bitte lass es uns wissen.

-2

Ich spielte mit .NET-basierten Bibliotheken und fand sie frustrierend veraltet. Facebook scheint ihre APIs häufig zu ändern. Wenn Sie also keine Bibliothek finden, die routinemäßig gepflegt wird, werden Sie feststellen, dass Sie die Hälfte der Implementierung durchlaufen werden, bevor Sie feststellen, dass es ernsthafte Probleme gibt.

Ich hatte etwas Erfolg mit der Javascript API, die Facebook veröffentlicht und unterhält. Obwohl die Dokumentation nicht immer auf dem neuesten Stand ist, fand ich, dass ich immer in der Nähe der richtigen Implementierung war (ein oder zwei Änderungen erforderlich).

3

Ich wollte eine grundlegende "Login using Facebook" -Funktion in meiner Django-App implementieren. Ich wollte dem Benutzer kein zu füllendes Formular zeigen oder ein Passwort wählen lassen. Ich zog es vor, es nahtlos zu machen.

Basierend auf meinen Anforderungen, django_facebook_oauth war die beste App für mich. Es erlaubt einfach dem Benutzer, sich über Facebook anzumelden, und erhält die Benutzerinformationen meiner Facebook-App-Anfragen von ihr (basierend auf meinem Facebook Auth Dialog). Es erstellt einen neuen Nutzer in Django mit der Facebook-E-Mail des Nutzers, einem Nutzernamen und einem leeren Passwort.

Ich empfehle es sehr.

0

Ich habe Django-Allauth und Django-Facebook auf zwei verschiedene Projekte verwendet.

django-allauth war großartig und bot eine sehr gute Unterstützung für die Anmeldung und Erstellung von Benutzerprofilen. Es könnte auch mit anderen Auth-Providern zusammenarbeiten, die ich nicht implementiert habe.

django-facebook funktionierte aus der Box, aber es ist nur mit Facebook kompatibel. Es stellte auch einfache APIs zur Verfügung, um die Likes und Freunde der Benutzer von Facebook direkt in die db zu holen, was mir sehr gefallen hat!

facebook.get_and_store_likes(user) 
facebook.get_and_store_friends(user)