Je travaille sur un projet django en utilisant python-social-auth pour authentifier avec facebook. Je cours le serveur de django sur localhost et ai mis en place le facebook avec mon application pour rediriger au http://127.0.0.1:8000/complete/facebook/, qui commence le pipeline de python-social-auth pour authentifier un utilisateur. J'utilise postgres comme base de données.Valeur de session manquante après la redirection avec django python-social-auth
Lorsque cette méthode est appelée et tente d'authentifier, elle ne peut pas trouver d'informations sur la session. De https://github.com/omab/python-social-auth/issues/534, je pense que le cookie sessionid est en cours d'écrasement. Si j'envoie la redirection facebook à une URL différente pour charger une page statique sans authentification, il n'y a pas d'erreur mais je ne m'authentifie pas non plus et je n'obtiens aucune information de facebook.
Comment éviter de remplacer le cookie sessionid - bien sûr, c'est le problème actuel - ou y a-t-il un autre problème qui pourrait me manquer ici?
[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.
comment faites-vous dans la production si? – dietbacon
ils ne le font pas, ils ont juste quitté le travail! :) – phaazon
Définissez simplement la valeur sur True si vous souhaitez autoriser uniquement les cookies de session via une connexion https (ce que vous faites probablement). –