Django Facebook Connect App Recommendation
Asked Answered
E

6

34

I want to implement Facebook connect login for my Django site and I've checked the already existing apps.

So far, I have found Django-Socialauth, django-socialregistration, and django-facebookconnect for this purpose.

The question is which one to choose, and I would like to hear from other developers who have experience with any of these apps.

It is important for me that the Facebook Connect login app plays nicely with @login_required, with the default auth system, and with django-registration.

Please share your experience :)

Edmondo answered 15/2, 2010 at 19:6 Comment(0)
F
28

Update (11/26/2013): I'm updating my recommendation. Since a sufficient amount of time has passed since I wrote this answer, I would recommend python-social-auth or django-allauth as the best tools for the job. They are active projects with good documentation and support for a lot more than just Facebook. I've had success using both.


I have had the most luck with adapting django-socialregistration with django-registration (0.8). Since you're working with django-registration, you're going to have to do a little bit of work, since all three of those packages assume the role of both the creation and the authentication of the user.

I was just going to explain what needed to be done, but you inspired me to finally get my version out: hello-social-registration.

Like I alluded to, it separates gives the registration functions to a django-registration backend and handles all the authorization itself. I've been using this on my near-beta application for a while now with no problems (I also handed it to a friend to use a few months ago and he got it to work without much modification).

It's definitely not ready to be a plug-and-play reusable application, yet, but hopefully it'll provide you with some insight. :)

Fusspot answered 22/2, 2010 at 3:12 Comment(8)
Looks great Bryan! I have also started working with socialregistration it works nice. I am wondering how can I retrieve first and last name of the users who have connected to the site using FB connect?(from view) I need this because I will be retrieving their first and last names at the setup view and fill the regular first and last name fields of their django accounts while saving the user. Thanks!Edmondo
I haven't gotten that far into it, maybe I should attempt that next. :) But what you're looking for can be found here: code.google.com/p/django-facebookconnect/source/browse/trunk/…Fusspot
Link is broken, project appears to be dead?Decrease
@Decrease — Sorry about that, I fixed the link.Fusspot
Great work Bryan! Clients need JavaScript enabled to use this?Ogive
@fcrazy — Yes. Facebook's JavaScript SDK is the only way to go.Fusspot
How do you use your "hello-social-registration" app? There's no documentation :(Hendecagon
Just an update, according to this link django-social-auth is deprecated and github.com/omab/python-social-auth is a way to go now...Conceive
B
4

By far the most commonly used package for Facebook authentication in Django is Django Facebook:

https://github.com/tschellenbach/Django-facebook

It also gives you access to the facebook APIs using the included Open Facebook api client.

Brno answered 21/10, 2011 at 21:48 Comment(0)
D
3

I wanted to implement a basic "Login using Facebook" functionality in my Django app. I didn't want to show the user a form to fill or have her choose a password. I preferred to make it seamless.

Based on my requirements, django_facebook_oauth was the best app for me. It simply allows the user to login using facebook, and gets the user info my Facebook app requests from her (based on my Facebook Auth Dialog). It creates a new user in Django with the user's facebook email, a username and a blank password.

I highly recommend it.

Dzoba answered 12/8, 2012 at 18:8 Comment(0)
C
1

Hi Take a look at fbconnect app that we (actually, Hernani, a guy on our team) put together for osqa (a clone of CNPROG).

You will have to, probably, tinker a bit to adapt that to your needs. It does work with @login_required decorator and the standard django.contrib.auth system, but we do not use django-registration.

Our app also works with openid and password login, but the openid part is tightly coupled with the Q&A component at present.

We may separate it though some time in the future, if anyone might be interested in "anything-signin" django pluggable app or has something better already - pls let us know.

Caskey answered 17/2, 2010 at 20:40 Comment(0)
I
0

I've used django-allauth and django-facebook on two different projects.

django-allauth was great and provided very good support for logging in and creating user profiles. It could also work with other auth providers, which I didn't implement.

django-facebook worked out of the box, but it's only compatible with Facebook. It also provided simple APIs for fetching users' likes and friends from Facebook directly into the db, which I liked very much!

facebook.get_and_store_likes(user)
facebook.get_and_store_friends(user)
Ial answered 19/6, 2014 at 13:17 Comment(0)
S
-2

I played with .NET based libraries and found them to be frustratingly out of date. Facebook seems to change their APIs frequently, so if you cannot find a library that is routinely maintained, you will find that you will get halfway through your implementation before you realize that there are serious problems.

I had some success with the javascript API that Facebook publishes and maintains. While the documentation may not be always up to date, I found that I was always within striking distance of the correct implementation (one or two changes needed).

Standby answered 17/2, 2010 at 20:45 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.