6

So I want to redirect after login to the same page. But Django Social Auth isn't redirecting. It redirects to "/pins/#_=_

Html:

<a href="{% url socialauth_begin 'facebook' %}?next={{ request.get_full_path }}">Facebook Login</a>

Urls.py

url(r'^$', 'pinry.core.views.home', name='home')

Views.py

def home(request):
    if request.user.is_authenticated():
        if 'next' in request.GET:
            return HttpResponseRedirect(request.GET['next'])
        else:    
            return HttpResponseRedirect('/pins'))
    return HttpResponseRedirect(reverse('core:concept'))

Settings.py

LOGIN_URL          = '/login-form/'
LOGIN_REDIRECT_URL = '/'
LOGIN_ERROR_URL    = '/login-error/'
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/'
SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/pins/'
SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = '/new-association-redirect-url/'
SOCIAL_AUTH_DISCONNECT_REDIRECT_URL = '/account-disconnected-redirect-url/'
SOCIAL_AUTH_BACKEND_ERROR_URL = '/new-error-url/'

SOCIAL_AUTH_COMPLETE_URL_NAME  = 'socialauth_complete'
SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'socialauth_associate_complete'
SOCIAL_AUTH_DEFAULT_USERNAME = 'new_social_auth_user'

TEMPLATE_CONTEXT_PROCESSORS = (
...
    "social_auth.context_processors.social_auth_by_name_backends",
    'social_auth.context_processors.social_auth_backends',
    'social_auth.context_processors.social_auth_by_type_backends',
    'social_auth.context_processors.social_auth_login_redirect',
    "django.core.context_processors.csrf"
    )
Coderaemon
  • 3,619
  • 6
  • 27
  • 50

2 Answers2

8

I faced the same issue as yours I solved it by changing my login button URL from

<a href="{% url 'social:begin' 'github' %}>

to

<a href="{% url 'social:begin' 'github' %}?next={{ request.GET.next }}>

samsri
  • 1,104
  • 14
  • 25
0

change LOGIN_REDIRECT_URL = '/pins/' to LOGIN_REDIRECT_URL = '/', or whatever u want to redirect this propety tells where to redirect after login

Hubert Barc
  • 59
  • 1
  • 6
  • Added my urls.py and views.py. How can I pass the next parameter in GET request after login by DSA? Presently it's not there hence its redirecting to "/pins" – Coderaemon Oct 26 '14 at 22:04
  • 1
    This doesn't answer the question. What he wants do is if the user is redirected to login page from some other page like pictures/nature, he wants the user to go to that particular page picutres/nature. – samsri Jan 02 '19 at 14:10