3
votes

Upon logout, wouldn't it be natural to remove the access tokens for social login? (User will be able to login with different social account next time he logs in)

How do I do it with python-social-auth?

https://python-social-auth.readthedocs.org/en/latest/pipeline.html#disconnection-pipeline talks about disconnecting and I guess it is close to closing the account than to logout

Logout with django-social-auth asks the same question, but answers don't actually address his question.

1

1 Answers

1
votes

Just use the default django logout for this, even for login if you see the code inside, it ask the data from OP and create adjango login from that data. and store all the info in socialauth user. And also python-social-auth have class for socialauth user and storage at backend, which store manythings, so for reference you can check the models.py and storage.py inside social_django.

In my current project which use django and social-auth-app-django of python-social-auth, i am usein gthe default django logout,

from django.contrib.auth import logout as auth_logout

class logout(TemplateView):

    next_page = settings.LOGOUT_REDIRECT_URL
    redirect_field_name = REDIRECT_FIELD_NAME
    template_name = None
    extra_context = None
    @method_decorator(never_cache)
    def dispatch(self, request, *args, **kwargs):
        auth_logout(request)
        next_page = settings.LOGOUT_REDIRECT_URL
        if next_page:
            return HttpResponseRedirect(next_page)
        return super().dispatch(request, *args, **kwargs)