Skip to content
Combining OpenID, OAuth and FacebookConnect signup in one application
Find file
Pull request Compare This branch is even with flashingpumpkin:v0.2-dev.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Django Social Registration

Django Social Registration enables developers to add alternative registration methods based on third party sites.


django oauth python-openid pyfacebook


  1. Add the socialregistration directory to your PYTHON_PATH.
  2. Add socialregistration to your INSTALLED_APPS settings of Django.
  3. Add socialregistration.urls to your file.


Facebook Connect

  1. Add FACEBOOK_API_KEY and FACEBOOK_SECRET_KEY to your settings file representing the keys you were given by Facebook.

  2. Add socialregistration.auth.FacebookAuth to AUTHENTICATION_BACKENDS in your settings file.

  3. Add 'facebook.djangofb.FacebookMiddleware' to MIDDLEWARE_CLASSES in your settings file. See:

  4. Add tags to your template file:

    {% load facebook_tags %}
    {% facebook_button %}
    {% facebook_js %}
  5. If you wish on using the pyfacebook library to do API calls instead of the JavaScript lib, add socialregistration.middleware.FacebookMiddleware to MIDDLEWARE_CLASSES


  1. Add the following variables to your file with the values you were given by Twitter:

  2. Add socialregistration.auth.TwitterAuth to AUTHENTICATION_BACKENDS in your settings file.

  3. Add tags to your template file:

    {% load twitter_tags %}
    {% twitter_button %}

Other OAuth Services

There is an example of how FriendFeed integration could work. socialregistration.models provides a FriendFeedProfile model to save account data, socialregistration.auth provides examples for different auth backends for different service providers, socialregistration.utils provides a Twitter and FriendFeed interface and socialregistration.urls provides examples based on Twitter and FriendFeed how to hook in more OAuth based services.


  1. Add socialregistration.auth.OpenIDAuth to AUTHENTICATION_BACKENDS in your settings file.

  2. Add tags to your template file:

    {% load openid_tags %}
    {% openid_form %}

Logging users out

You can use the standard {% url auth_logout %} url to log users out of Django. Please note that this will not log users out of third party sites though. When using Facebook Connect, it is recommended to follow the FBConnect developer wiki. See:

<a href="#" onclick="FB.Connect.logoutAndRedirect('{% url auth_logout %}')">Logout</a>


If you wish everything to go through HTTPS, set SOCIALREGISTRATION_USE_HTTPS in your settings file to True

Other Information

If you don't wish your users to be redirected to the setup view to create a username but rather have a username generated for them, set SOCIALREGISTRATION_GENERATE_USERNAME in your settings file to True

Something went wrong with that request. Please try again.