django override auth login method

Maxim Volkomorov

I want to override login function in __init__.py of django.contrib.auth

I did steps:

urls.py

url(r'^login/$', 'my_login'),

views.py

from django.contrib import auth

def login(request, user, backend=None):
   # do some stuff

settings.py

   INSTALLED_APPS = [
   #'django.contrib.auth',
    'my_auth_app'
   ]

But I feel it's the wrong approach.

Actually I want to get default contrib.auth with overidden login method

Maxim Volkomorov

Done this approach.

urls.py

# separate my custom login from django default auth
path('accounts/login/', CustomLoginView.as_view(), name='login'), 
path('accounts/', include('django.contrib.auth.urls')),

views.py

def custom_login(request, user, backend=None):
    """
    modificated generic.auth login.
    Send signal with extra parameter: previous [session_key]
    """

    # get previous seesion_key for signal 
    prev_session_key = request.session.session_key

    """ 
        original code

    """
    # send extra argument prev_session_key 
    user_logged_in.send(sender=user.__class__, request=request, user=user, prev_session_key=prev_session_key)

# custom class-based view overriden on LoginView
class CustomLoginView(LoginView):

    def form_valid(self, form):
        """Security check complete. Log the user in."""

        # changed default login
        custom_login(self.request, form.get_user())

        return HttpResponseRedirect(self.get_success_url())

When I make custom_login based on default login(), I am afraid that it is no best approach, because i am copying a part of original code. Maybe it's better to use a decorator here?

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Override the django translation method

override the save method in django

How to make override Django login

Django Rest Framework and Auth: How to override UserDetailsView

django Restframework _ override rest_auth LoginView

Override save method in Django not working

create() method override in django rest

Override save method of Django Admin

Override Django module class method

django override model save() method

Django Override Custom Login Redirect Url

Laravel method Auth user redirect to login with message

Django auth registration views login redirect

failed to configure axios with django rest auth to login and get auth token

KeyError at /login/ 'is_login' Request Method: django

Django all auth: How to override the confirmation email url

How to override __unicode__ on Django Auth.Group instance in form?

How to override PasswordResetConfirmView? (django.contrib.auth.views)

Override the save() method in Django ModelForm to create or update

Django Test Client Method Override Header

Override list method in Django rest ViewSet

override create method in django rest generics CreateAPIView

Override serializer delete method in Django RF

How to override the model's update method in django?

Django override save method with changing field value

Django cannot import login from django.contrib.auth.views

How can I override builtin login method in Loopback?

How to prevent redirection when using auth()->login() method in laravel?

Firebase Auth, Error: NoSuchMethodError: The method 'login' was called on null