python 社交身份验证中缺少会话状态

Utk*_*tav 8 python django cookies session python-social-auth

我按照本教程(https://artandlogic.com/2014/04/tutorial-adding-facebooktwittergoogle-authentication-to-a-django-application/)进行操作,并且收到以下错误。我已将服务器托管在 EC2 实例上,并且有一个域http://(xyz).com。我还看到了这个问题的答案(使用 django python-social-auth 重定向后会话值丢失),但我没有得到任何帮助。\n在此输入图像描述

\n\n

这是文本中的堆栈跟踪

\n\n
 AuthStateMissing at /api/user/complete/google-oauth2/\nSession value state missing.\nRequest Method: GET\nRequest URL:    http://interviewmiles.com:8000/api/user/complete/google-oauth2/?state=9Sa5JSkbcAbbGzBtqpx6jtbLCuJPe6kJ&code=4/c4VTig14u7THYLd1M4VoTRf1dnq58wp6S68EbkSwhZs&authuser=0&session_state=8aa4e419c219643dc264950a24151457677d99ae..b805&prompt=none\nDjango Version: 1.9.7\nException Type: AuthStateMissing\nException Value:    \nSession value state missing.\nException Location: /usr/local/lib/python2.7/site-packages/social/backends/oauth.py in validate_state, line 88\nPython Executable:  /usr/bin/python\nPython Version: 2.7.10\nPython Path:    \n[\'/home/ec2-user/interviewmiles/login\',\n \'/usr/local/lib/python2.7/site-packages/django_cors_headers-1.1.0-py2.7.egg\',\n \'/usr/lib64/python27.zip\',\n \'/usr/lib64/python2.7\',\n \'/usr/lib64/python2.7/plat-linux2\',\n \'/usr/lib64/python2.7/lib-tk\',\n \'/usr/lib64/python2.7/lib-old\',\n \'/usr/lib64/python2.7/lib-dynload\',\n \'/usr/local/lib64/python2.7/site-packages\',\n \'/usr/local/lib/python2.7/site-packages\',\n \'/usr/lib64/python2.7/site-packages\',\n \'/usr/lib/python2.7/site-packages\',\n \'/usr/lib64/python2.7/dist-packages\',\n \'/usr/lib64/python2.7/dist-packages/PIL\',\n \'/usr/lib/python2.7/dist-packages\']\n\n/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py in get_response\n                response = self.process_exception_by_middleware(e, request) ...\n\n\xe2\x96\xb6 Local vars\n/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py in get_response\n                    response = wrapped_callback(request, *callback_args, **callback_kwargs) ...\n\xe2\x96\xb6 Local vars\n/usr/local/lib/python2.7/site-packages/django/views/decorators/cache.py in _wrapped_view_func\n        response = view_func(request, *args, **kwargs) ...\n\xe2\x96\xb6 Local vars\n/usr/local/lib/python2.7/site-packages/django/views/decorators/csrf.py in wrapped_view\n        return view_func(*args, **kwargs) ...\n\xe2\x96\xb6 Local vars\n/usr/local/lib/python2.7/site-packages/social/apps/django_app/utils.py in wrapper\n            return func(request, backend, *args, **kwargs) ...\n\xe2\x96\xb6 Local vars\n/usr/local/lib/python2.7/site-packages/social/apps/django_app/views.py in complete\n                       redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs) ...\n\xe2\x96\xb6 Local vars\n/usr/local/lib/python2.7/site-packages/social/actions.py in do_complete\n        user = backend.complete(user=user, *args, **kwargs) ...\n\xe2\x96\xb6 Local vars\n/usr/local/lib/python2.7/site-packages/social/backends/base.py in complete\n        return self.auth_complete(*args, **kwargs) ...\n\xe2\x96\xb6 Local vars\n/usr/local/lib/python2.7/site-packages/social/utils.py in wrapper\n            return func(*args, **kwargs) ...\n\xe2\x96\xb6 Local vars\n/usr/local/lib/python2.7/site-packages/social/backends/oauth.py in auth_complete\n        state = self.validate_state() ...\n\xe2\x96\xb6 Local vars\n/usr/local/lib/python2.7/site-packages/social/backends/oauth.py in validate_state\n            raise AuthStateMissing(self, \'state\') \n
Run Code Online (Sandbox Code Playgroud)\n

Eug*_*lev 2

我通过设置解决了这个问题

SOCIAL_AUTH_FIELDS_STORED_IN_SESSION = ['state']
SESSION_COOKIE_SECURE = False
Run Code Online (Sandbox Code Playgroud)

在设置.py