Django Social Registration

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



  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 urls.py 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 socialregistration.middleware.FacebookMiddleware to MIDDLEWARE_CLASSES in your settings file.

  4. Add tags to your template file:

    {% load facebook_tags %}
    {% facebook_button %}
    {% facebook_js %}


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

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

  3. Add tags to your template file:

    {% load twitter_tags %}
    {% twitter_button %}

Other OAuth Services

Please refer to the Twitter implementation of the signup / login process to extend your own application to act as a consumer of other OAuth providers. Basically it's just plugging together some urls and creating an auth backend, a model and a view.


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

  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. Logging out a Facebook user might look something like this:

<a href="#" onclick="javascript:FB.logout(function(response){ document.location = '{% url auth_logout %}' })">Logout</a>

To log users out of other third party sites, I recommend redirecting them further to the OAuth / OpenID providers after they logged out of your site.


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 random username generated for them, set SOCIALREGISTRATION_GENERATE_USERNAME in your settings file to True.