Custom Password Less Authentication in Django

Authentication backends allow the ability to change what method checks your users credentials.

An Example for the use of custom authentication backend:

For web services, ie Facebook authentication, you don't have access to user data like a password. Without password(not like random string) we can't create a user in django.

Facebook connect provides you details of the currently authenticated user. But to maintain the login_required decorator or to a user request.user you still need to have them logged in using Django. 
That's where the Authentication Backend comes in.

from django.contrib.auth.backends import ModelBackend
from peeldb.models import User


class PasswordlessAuthBackend(ModelBackend):
    """Log in to Django without providing a password.

    """
    def authenticate(self, username=None):
        try:
            return User.objects.get(username=username)
        except User.DoesNotExist:
            return None

    def get_user(self, user_id):
        try:
            return User.objects.get(pk=user_id)
        except User.DoesNotExist:
            return None

In your settings.py add


AUTHENTICATION_BACKENDS += (
    # ... your other backends
    'social.auth_backend.PasswordlessAuthBackend',
    # path to your custom authentication file
    # appname.filename.classname
)

Then to authenticate a registered user, we can override authenticate function without password in our views like

   user = authenticate(username={{user_email}})

   login(request, user)

Posted On 31 July 2015 By MicroPyramid


Need any Help in your Project?Let's Talk

Latest Comments
How to implement TokenBasedAuthentication in DjangoRestFramework?

This blog explains you how to use Token Authentication to authenticate users within a Django Application. Token Authentication is a way to authorize users by ...

Continue Reading...
Custom Decorators To Check User Roles And Permissions In Django

A decorator is a function that takes another function and returns a newer,prettier version of that function.

To know more about decorators in python see ...

Continue Reading...
How To Add A Custom Managers In Django

Django Custom Managers - A Manager is the interface through which database query operations are provided to Django models. At least one Manager exists for ...

Continue Reading...

Subscribe To our news letter

Subscribe and Stay Updated about our Webinars, news and articles on Django, Python, Machine Learning, Amazon Web Services, DevOps, Salesforce, ReactJS, AngularJS, React Native.
* We don't provide your email contact details to any third parties