Programmatic login succeeds, but not recognized

I have a magnet link feature where my web app sends a login URL with a username & one-time token encrypted. When clicking the link on the email, the user is sent to an authentication where I programmatically log in and then redirect to the member page.

Authentication and login are successful, but when I redirect to the main page, Django sends the user back to the login page. However, when I click the logo, the main page shows.

authentication & login code

def magnet_link_login(request, *args, **kwargs):
    if request.user and != None:
        return redirect('stream:home')
    magnet_token = request.GET['key'] if 'key' in request.GET else ''        
    decrypted_token = decrypt_text(magnet_token)
    split_texts = decrypted_token.split('&')
    if len(split_texts)<2:
        #invalid and redirect to an invalid magnet link page
    uname = split_texts[0].split('=')[1]
    auth_token = split_texts[1].split('=')[1]
    #fetch the user record
    acc = Account.objects.get(slug=uname)
    if not acc:
        #error and redirect to an invalid account name page
    #validate and login
        logged_user = authenticate(username=acc.username,password=auth_token)
        if logged_user is not None:
            login(request, logged_user)
            return redirect('stream:home')
            return redirect('invalid-link')
    except Exception as e:

    return redirect('invalid-link')

My member page (stream:home) is a CBV.

class Home(LoginRequiredMixin, ListView):
    paginate_by = 6
    context_object_name = 'content_list'

    def get_queryset(self):
        *** SOME STUFF HERE***

    def get_context_data(self, **kwargs):
        *** SOME STUFF HERE***
        return context

Except for LoginRequiredMixin at the CBV, I do not check login explicitly and redirect to the login page (the login page is defined at the I have already checked handful of threads dealing with similar issues, but my issue is not resolved.

What am I doing wrong here?

The code looks fine to me.Try Removing LoginRequiredMixin method and explicitly check if user is logged in or not.Check if that works?

Back to Top