Ich arbeite an einem Django-Projekt mit Python-Social-Auth, um die Authentifizierung mit Facebook zu tun. Ich lasse den django Server auf localhost laufen und lasse Facebook mit meiner Anwendung umleiten, um zu http://127.0.0.1:8000/complete/facebook/ umzuleiten, das die python-social-auth Rohrleitung beginnt, um einen Benutzer zu authentifizieren. Ich benutze Postgres als meine Datenbank.Session-Wert fehlt nach Umleitung mit Django Python-Social-Auth
Wenn diese Methode aufgerufen wird und versucht, sich zu authentifizieren, kann sie keine Informationen zur Sitzung finden. Von https://github.com/omab/python-social-auth/issues/534 glaube ich, dass der Sitzungs-Cookie überschrieben wird. Wenn ich die Facebook-Weiterleitung an eine andere URL sende, um eine statische Seite ohne Authentifizierung zu laden, gibt es keinen Fehler, aber ich authentifiziere mich auch nicht und bekomme keine Informationen von Facebook.
Wie würde ich das sessionid-Cookie nicht überschreiben - wenn das natürlich das eigentliche Problem ist - oder gibt es ein anderes Problem, das mir hier vielleicht fehlt?
[03/Jun/2016 05:19:58] "GET /login/facebook/?next=/lithium-web/ HTTP/1.1" 302 0
Internal Server Error: /complete/facebook/
Traceback (most recent call last):
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/social/apps/django_app/utils.py", line 51, in wrapper
return func(request, backend, *args, **kwargs)
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/social/apps/django_app/views.py", line 28, in complete
redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs)
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/social/actions.py", line 43, in do_complete
user = backend.complete(user=user, *args, **kwargs)
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/social/backends/base.py", line 41, in complete
return self.auth_complete(*args, **kwargs)
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/social/utils.py", line 229, in wrapper
return func(*args, **kwargs)
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/social/backends/facebook.py", line 71, in auth_complete
state = self.validate_state()
File "/Users/mac/Desktop/lithium-web/lib/python2.7/site-packages/social/backends/oauth.py", line 88, in validate_state
raise AuthStateMissing(self, 'state')
AuthStateMissing: Session value state missing.
, wie Sie es tun, obwohl in der Produktion? – dietbacon
sie nicht, sie haben nur den Job verlassen! :) – phaazon
Setzen Sie einfach den Wert auf True, wenn Sie nur Session-Cookies über https-Verbindung zulassen wollen (was Sie wahrscheinlich tun) –