Django 2.0 allauth Facebook 2018
Django 2.0 allauth Facebook 2018
我获得了 Twitter 并且 Google 使用 Django all-auth 登录。
现在 Facebook 有问题。
尝试了 localhost/127.0.0.1/etc 之间的每一个组合(也通过将我的主机更改为 local.domain.com 走极端路线 - 甚至因为 Facebook 显然阻止了 http 访问(自 2018 年 3 月起)而出现了 SSL 问题。
到此为止...现在我收到此错误
谁能引导我走向正确的方向?
我要拔头发了
KeyError at /accounts/facebook/login/token/ 'access_token' Request Method: POST Request
URL: https://localhost:8000/accounts/facebook/login/token/ Django
Version: 2.0.3 Exception Type: KeyError Exception Value:
'access_token'
{'error': {'code': 5,
'fbtrace_id': 'Bs4PHOvc+rZ',
'message': "This IP can't make requests for that application.",
'type': 'OAuthException'}}
添加详情:
http://localhost:8000/accounts/facebook/login/callback
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'METHOD': 'js_sdk',
'SCOPE': ['email', 'public_profile', 'user_friends'],
'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
'INIT_PARAMS': {'cookie': True},
'FIELDS': [
'id',
'email',
'name',
'first_name',
'last_name',
'verified',
'locale',
'timezone',
'link',
'gender',
'updated_time',
],
'LOCALE_FUNC': lambda request: 'en_GB',
'EXCHANGE_TOKEN': True,
'VERIFIED_EMAIL': False,
'VERSION': 'v2.5',
}
}
Django 1.4.15,django-allauth0.18.0,Facebook升级APIv2.8
自 2018 年火星以来,Facebook 默认设置 "Use Strict Mode for Redirect URls" YES。我的问题出在 Facebook 应用程序配置中,而不是 django-allauth.
再次工作应用程序设置:
基本设置
- 应用程序域:"AnySite.com"
- 隐私政策 URL:“https://AnySite.com/myprivacy/”
- 网站:“https://AnySite.com/”
高级设置
- 服务器IP白名单:留空
- 域管理器:让它空白
Facebook 登录设置
是客户端 OAuth 登录
是 Web OAuth 登录
是(新:强制)对重定向使用严格模式 URLs
是 嵌入式浏览器 OAuth 登录
是 强制执行 HTTPS
有效的 OAuth 重定向 URLs:“https://AnySite.com/accounts/facebook/login/callback/”(强制)
希望对你有帮助。
更新以防其他人在 2020 年遇到此问题:
在 Facebook 开发者中:
- 从您的主应用创建测试应用
- settings -> basic,将 localhost 和 127.0.0.1 添加到应用域。将站点 url 设置为 https://localhost:8000
- 产品 -> Facebook 登录 -> 设置。客户端,已启用登录。启用嵌入式浏览器 OAuth 登录。
将所有这些添加到有效的 OAuth 重定向 URI 中:
https://127.0.0.1:8000/
https://127.0.0.1:8000/accounts/facebook/login/callback
https://localhost:8000/
https://localhost:8000/accounts/facebook/login/callback
在 Django 中:
pip install django-sslserver
- 将 sslserver 添加到 INSTALLED_APPS
python manage.py runsslserver
在管理员中:
- 创建 2 个站点,https://127.0.0.1:8000/ 和 https://localhost:8000/
- 添加社交应用程序,facebook,添加您的测试应用程序 ID 和密钥。将以上2个站点注册进去。
我获得了 Twitter 并且 Google 使用 Django all-auth 登录。 现在 Facebook 有问题。 尝试了 localhost/127.0.0.1/etc 之间的每一个组合(也通过将我的主机更改为 local.domain.com 走极端路线 - 甚至因为 Facebook 显然阻止了 http 访问(自 2018 年 3 月起)而出现了 SSL 问题。
到此为止...现在我收到此错误 谁能引导我走向正确的方向? 我要拔头发了
KeyError at /accounts/facebook/login/token/ 'access_token' Request Method: POST Request
URL: https://localhost:8000/accounts/facebook/login/token/ Django Version: 2.0.3 Exception Type: KeyError Exception Value:
'access_token'
{'error': {'code': 5,
'fbtrace_id': 'Bs4PHOvc+rZ',
'message': "This IP can't make requests for that application.",
'type': 'OAuthException'}}
添加详情:
http://localhost:8000/accounts/facebook/login/callback
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'METHOD': 'js_sdk',
'SCOPE': ['email', 'public_profile', 'user_friends'],
'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
'INIT_PARAMS': {'cookie': True},
'FIELDS': [
'id',
'email',
'name',
'first_name',
'last_name',
'verified',
'locale',
'timezone',
'link',
'gender',
'updated_time',
],
'LOCALE_FUNC': lambda request: 'en_GB',
'EXCHANGE_TOKEN': True,
'VERIFIED_EMAIL': False,
'VERSION': 'v2.5',
}
}
Django 1.4.15,django-allauth0.18.0,Facebook升级APIv2.8
自 2018 年火星以来,Facebook 默认设置 "Use Strict Mode for Redirect URls" YES。我的问题出在 Facebook 应用程序配置中,而不是 django-allauth.
再次工作应用程序设置:
基本设置
- 应用程序域:"AnySite.com"
- 隐私政策 URL:“https://AnySite.com/myprivacy/”
- 网站:“https://AnySite.com/”
高级设置
- 服务器IP白名单:留空
- 域管理器:让它空白
Facebook 登录设置
是客户端 OAuth 登录
是 Web OAuth 登录
是(新:强制)对重定向使用严格模式 URLs
是 嵌入式浏览器 OAuth 登录
是 强制执行 HTTPS
有效的 OAuth 重定向 URLs:“https://AnySite.com/accounts/facebook/login/callback/”(强制)
希望对你有帮助。
更新以防其他人在 2020 年遇到此问题:
在 Facebook 开发者中:
- 从您的主应用创建测试应用
- settings -> basic,将 localhost 和 127.0.0.1 添加到应用域。将站点 url 设置为 https://localhost:8000
- 产品 -> Facebook 登录 -> 设置。客户端,已启用登录。启用嵌入式浏览器 OAuth 登录。 将所有这些添加到有效的 OAuth 重定向 URI 中: https://127.0.0.1:8000/ https://127.0.0.1:8000/accounts/facebook/login/callback https://localhost:8000/ https://localhost:8000/accounts/facebook/login/callback
在 Django 中:
pip install django-sslserver
- 将 sslserver 添加到 INSTALLED_APPS
python manage.py runsslserver
在管理员中:
- 创建 2 个站点,https://127.0.0.1:8000/ 和 https://localhost:8000/
- 添加社交应用程序,facebook,添加您的测试应用程序 ID 和密钥。将以上2个站点注册进去。