2016-04-22 4 views
2

Ich habe versucht, den nächsten Parameter verwenden, aber es funktioniert nicht, weil man in ihr Beispiel etwasWie wird nach dem sozialen Login mit django allauth auf die gleiche Seite umgeleitet?

hier ist die Vorlage

<div class="col-md-12 text-center"> 
        <a href="{% provider_login_url "facebook" method="oauth2" next='{{ request.path }}'%} "><img src = "{% static 'images/fbconnect.png' %}" height="45px" ></a> 
        <a href="{% provider_login_url "google" method="connect" next='{{ request.path }}'%} "><img src = "{% static 'images/g_login.png' %}" height="45px" ></a> 
        </div> 

hier wird die Ansicht beeinflussen

if request.POST.get('action') == 'login': 
       username_email = request.POST.get('user_email') 
       password = request.POST.get('password') 
       try: 
        the_user = User.objects.get(username=username_email) 
       except: 
        the_user = User.objects.get(email=username_email) 

       if the_user is not None: 
        user = authenticate(username=username_email , password=password) 
        if user is not None: 
         login(request , user) 
       return HttpResponse(json.dumps({'status' : 'True'})) 

Antwort

0

Redirect param funktioniert nicht Verwenden Sie es nicht in Ihrer Ansicht, Sie geben nur HttpResponse zurück.

sollten Sie kehren HttpResponseRedirect mit URL, wo Sie Ihre Benutzer umleiten möchten. Bitte sehen Sie, wie allauth implementiert diese hier: https://github.com/pennersr/django-allauth/blob/master/allauth/account/views.py

Insbesondere sehen diese beiden Zeilen in RedirectAuthenticatedUserMixin, wo Umleitungs-URL abgerufen und umgeleitet wird:

redirect_to = self.get_authenticated_redirect_url() 
response = HttpResponseRedirect(redirect_to) 
Verwandte Themen