2017-11-23 5 views
0

Wenn ich Google OAuth verwenden, um meinen Benutzer zu überprüfen, nachdem Verifizierung übergeben wurde, möchte ich auf die Seite, die Benutzer besuchen vor der Behörde umleiten, also möchte ich den Seitenpfad zum Benutzer Cookie speichern, so dass ich die Implementierung wie folgt:Warum funktioniert HttpResponseRedirect.set_cookie nicht, wenn ich im Django-Projekt verwende?

def get_login_resp(request, redirect): 
    print(redirect) 
    auth_url = "https://accounts.google.com/o/oauth2/auth?" + urlencode({ 
     "client_id": GOOGLE_CLIENT_ID, 
     "response_type": "code", 
     "redirect_uri": make_redirect_url(request, redirect), 
     "scope": "profile email", 
     "max_auth_age": 0 
    }) 
    resp = HttpResponseRedirect(auth_url) 
    max_age = 3600 * 24 
    expires = datetime.strftime(datetime.utcnow() + timedelta(seconds=max_age), "%a, %d-%b-%Y %H:%M:%S GMT") 
    print(expires) 
    resp.set_cookie('google_auth_redirect', redirect, max_age=max_age, expires=expires, 
        domain=LOGIN_COOKIE_DOMAIN, secure=True, httponly=True) 
    print(resp._headers) 
    print(resp.cookies) 
    return resp 

ps: Umleitung ist die Seite Pfad, die ich speichern möchten

Aber wenn Anfrage der Login-uRL mit Postman, kann ich nur diese Header sehen: response headers

Und diese Cookies: Cookies

Also, wie kann ich mit diesem Problem tun? Es gibt keine Fehlerinfo für mich.

+0

wenn ich drucken (resp.cookies) ich das sehen kann: 'Set-Cookie: google_auth_redirect =“/lists/oauth2callback "; Domäne = .localhost: 8000; abläuft = Fr, 24-Nov-2017 03:12:13 GMT; HttpOnly; Höchstalter = 86400; Pfad = /; Sicher ' – Leekin

+0

eh ~, ich benutze den Debug-Modus, um Schritt für Schritt in den Django-Code zu laufen, aber ich kann keine Frage finden. – Leekin

Antwort

0

Versuchen Sie alle Methoden, um herauszufinden, was los ist, aber immer noch fehlgeschlagen.

Also ich versuchen, Server auf einer anderen Maschine (ein Linux-Server) zu laufen, funktioniert es !!!

BTW: Mein PC entwickeln, ist Macbook Pro 15-Zoll, 2017 mit macOS High Sierra 10.13.1

Verwandte Themen