现在我尝试设置python-social-app
在用户名/密码重定向到错误页面后的facebook登录中,我不知道为什么会发生这种情况......
在我的设置中,我有'social.backends.facebook.FacebookOAuth2'
并且我正确地设置了SOCIAL_AUTH_FACEBOOK_KEY
和秘密,所以真的在哪里查看错误。?
回溯
Environment:
Request Method: GET
Request URL: http://website.com:8000/complete/facebook/?redirect_state=IuQDEiyX2bbS8Uhk7MR3hpRFLNZlW2Y5&code=AQDH5kqBibfy9bi21M9tTieujRAqvJVYdAb2UPFvfH6DVXoCWrrtamRA99Ze5-6cC6qHPiNq-a3XbGh2Gg4pbdFfM4OTpCEpWkPID6SZrHfAoEan8Q68cV17LDgsryX_M45QoXd0knpbE0x-QwAPwdoFmKQGHLw7xomCHeN5pCtrWhtoYQIrsFE1UQZZaxt4qtLzAmfmCRjDO7Et_S75fngLiomM0PfevTChLbHJHMYaqy6DBkgGZqZK-bXrqLaNFnBEoZ3M956DwCg4ZtTnvxulR4sXH9ZV3IoxVhL0JxMVsGnT2H_0wdKujIDPKcdPKZc&state=IuQDEiyX2bbS8Uhk7MR3hpRFLNZlW2Y5
Django Version: 1.8.3
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'frontend',
'social.apps.django_app.default')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware')
Traceback:
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
57. response = view_func(request, *args, **kwargs)
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
58. return view_func(*args, **kwargs)
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/social/apps/django_app/utils.py" in wrapper
51. return func(request, backend, *args, **kwargs)
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/social/apps/django_app/views.py" in complete
28. redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs)
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/social/actions.py" in do_complete
43. user = backend.complete(user=user, *args, **kwargs)
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/social/backends/base.py" in complete
41. return self.auth_complete(*args, **kwargs)
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/social/utils.py" in wrapper
232. raise AuthCanceled(args[0])
Exception Type: AuthCanceled at /complete/facebook/
Exception Value: Authentication process canceled
答案 0 :(得分:3)
我和Facebook和谷歌都有同样的问题。 自昨天以来一直在尝试这个。 它终于工作了...... 在下面列出了我的工作设置可能会有所帮助...
在我看来,在我的情况下,我的登录模板中的href值与问题有关,这是一个观察结果吗?
希望这有帮助
SETTINGS.PY
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY='****************.apps.googleusercontent.com'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET ='**************'
SOCIAL_AUTH_RAISE_EXCEPTIONS = False
SOCIAL_AUTH_FACEBOOK_KEY = '************' # Facebook App ID
SOCIAL_AUTH_FACEBOOK_SECRET = '*********************' # Facebook App Secret
INSTALLED_APPS
'social.apps.django_app.default'
模板
'context_processors':
social.apps.django_app.context_processors.backends',
'social.apps.django_app.context_processors.login_redirect',
URLS.PY
from django.conf import settings
urlpatterns = [
url('', include('django.contrib.auth.urls', namespace='auth')),
url('', include('social.apps.django_app.urls', namespace='social')),
最后是LOGIN.HTML模板,似乎有一个带有原始数据的问题'
ORIGINAL href是:
<li class="facebook"><a href="{% url 'social:begin' 'facebook' %}">Login with Facebook</a></li>
这已改为
<li class="facebook"><a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}">Login with Facebook</a></li>
对谷歌的href做了同样的改变.....
在FACBOOK开发者控制台
基本设置
APP DOMAINS = mysite.com (还更改了/ etc / hosts文件以映射mysite.com而不是localhost映射到127.0.0.1)
网站网址=&#34; example.com:8000 /&#34;
高级设置 只要 &#34;允许API访问应用程序设置&#34;和#34;通过App Events&#34;收集Apple广告标识符(IDFA);设置为YES
所有其他字段设置为no或空白,但客户端令牌字段
除外GOOGLE API设置如下
&#34;授权的JavaScript起源&#34;这是空白的
&#34;授权重定向URI&#34;设置为http://example.com:8000/complete/google-oauth2/ (我原来使用的是http://example.com:8000/social-auth/complete/google-oauth2/)
在&#34; Oauth Consent屏幕&#34;
&#34;电子邮件地址&#34; 已设置
&#34;向用户显示的产品名称&#34; 已设置
所有其他字段保留为默认设置
答案 1 :(得分:2)
我长期遇到同样的问题。花了很多时间后,我发现了问题所在。出于某种原因,document的social-app-django已将当前版本的Facebook API指定为2.9
(安全原因?)。当前版本为2.8
。因此,只需将其更改为2.8
或将其删除即可。
SOCIAL_AUTH_FACEBOOK_API_VERSION = '2.8'
这就是原因,我的身份验证被取消了。希望这可以帮助 !
答案 2 :(得分:-1)
我也有同样的事情(在Amazon进行登录授权时),挠着头,直到我发现我的settings.py中有一个简单的错字。
SOCAIL_AUTH_AMAZON_SECRET = "XXXXXXXXXXXXXXXXX"
应该是哪个:
SOCIAL_AUTH_AMAZON_SECRET = "XXXXXXXXXXXXXXXXX"
就是这样-取消Auth并没有任何关系,尽管我敢肯定这是对social_django软件包的看法。