2014-11-15 11 views
5

Używam Pythona do uwierzytelniania społecznego, ale nie mogę przekierować na ostatnią stronę po udanym logowaniu.przekierowanie na ostatnią stronę nie działa w python social auth

Na przykład, jeśli jestem na następnej stronie http://localhost:8000/docprofile/14/ i kliknij przycisk logowania, zamiast przekierowania mnie do ostatniej strony http://localhost:8000/docprofile/14/ przekierowuje mnie do strony logowania.

Jeśli Ja to:

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

To przekierowuje do strony logowania oraz adres URL kończy się dziwne znaki:

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

Próbowałem też tak:

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

ten czas zajmuje ścieżkę /docprofile/14, ale nadal nie przekierowuje mnie z powrotem i zabiera mnie do login strona z adresem URL http://localhost:8000/login/?next=/docprofile/14/#_=_

+0

Oprócz problemu z przekierowaniem, uwierzytelnianie działa poprawnie? – omab

+0

@omab Tak, uwierzytelnianie działa poprawnie. To tylko przekierowanie jest problemem! –

+0

Czy znalazłeś jakieś rozwiązanie tego problemu? – po5i

Odpowiedz

0

można umieścić to w głowie swojego szablonu przekierowanego stronie -

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

Będzie rade!

0

Co miałem zrobić, to rozebrać następnego parametru z ciągu kwerendy w moim GET i zmodyfikować html umieścić go w szablonie jak ten

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) 

i mój szablon teraz dostaje kolejny parametr z kontekst i kiedy loguję się do przekierowania.

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