2014-11-15 10 views
5

Sto usando python social auth per utilizzare gli accessi social, ma non riesco a reindirizzare all'ultima pagina dopo il login riuscito.reindirizza all'ultima pagina che non funziona su python social auth

Ad esempio se sono nella pagina successiva http://localhost:8000/docprofile/14/ e faccio clic sul pulsante di accesso, invece di reindirizzarmi all'ultima pagina http://localhost:8000/docprofile/14/ mi reindirizza alla pagina di accesso.

Se metto questo:

<a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}"> | Login with Facebook</a> 

E reindirizza alla pagina di accesso e l'URL termina con strani personaggi:

http://localhost:8000/login/#_=_ 

Ho provato anche questo:

<a href="{% url 'social:begin' 'facebook' %}?next={{ request.get_full_path }}"> | Login with Facebook</a> 

Questo tempo fa il percorso del /docprofile/14 ma ancora non mi reindirizza indietro e mi porta al pagina di login con l'url http://localhost:8000/login/?next=/docprofile/14/#_=_

+0

Accanto al problema di reindirizzamento, l'autenticazione funziona correttamente? – omab

+0

@omab Sì, l'autenticazione funziona correttamente. È solo il reindirizzamento è il problema! –

+0

Hai trovato qualche soluzione per questo problema? – po5i

risposta

0

È possibile includere questo nella testa del vostro template della pagina reindirizzata -

<script type="text/javascript"> 
    if (window.location.hash == '#_=_') { 
     window.location.hash = ''; 
    } 
</script>` 

Si farà il trucco!

0

Quello che dovevo fare era striscia fuori parametro successivo dalla stringa di query nel mio GET e modificare il codice HTML da includere nel modello come questo

def home(request): 
    c = context() 
    if request.GET.get('next'): 
     c = context(next=request.GET['next']) 

    return render_to_response('home.html', 
           context_instance=RequestContext(request, c)) 

def context(**extra): 
    return dict({ 
     'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS) 
    }, **extra) 

E il mio modello ora ottiene il parametro successivo da il contesto e quando registro i lavori di reindirizzamento.

<a class="col-md-2 btn btn-default" name="{{ backend|backend_class }}" href="{% url "social:begin" backend=name %}?next={{next}}">