Django All-Auth Facebook 集成
Django All-Auth Facebook Integration
我在为 Django All-Auth 设置 Facebook 社交集成时遇到问题。我已经成功设置了 Google 登录,所以我不知道为什么一个有效而另一个无效。我认为这可能是由于我在 settings.py 中的 Facebook 配置所致,因为 Facebook 有很多可能的选项。
活动摘要:
- 点击我网站上的“通过 Facebook 登录”按钮
- 浏览器重定向到 Facebook 网站进行登录,facebook 请求密码。
- Facebook 接受密码
- 浏览器重定向回我的网站,但出现以下错误:"Social Network Login Failure, An error occurred while attempting to login via your social network account."
- 登录失败
知道如何诊断导致问题的确切原因吗?
虚拟主机消息示例:
[16/Nov/2016 02:14:37] "GET /accounts/facebook/login/callback/?code=AQArXlYq-4K8
UBnuACFQZK39HvVAkZzYpnkP4hI223Y5kA1JmmjdF5yOeVHnrDRpxMOPFNviDzYeSSBvWccALZHGTl-8
7_A1-jtwpDF0UdgoGSVVd9KsrGrQDrHi0i6X9l_pO76-_Ro0N8ePr4L7uUd2G3aWAlZVtAKNNPG1kNBf
OIwhb_RFRJrFvdLA5TlUXaGFdkEsRdMawyG8tdAstXdm5FcxKBRYMOE98j3yalHm5oLLeXOMKJ14EdDw
8-DHU6f5Ze1DWaWWUd-3MFP-NvF2sG4XbA6n5McPrLgYZKb_YG8Slqgo5GDVrKHT1tNedzgceCjjDXT3
TfbzZc9e-aQT9EycKAdGDr1TkKw9lO-Lqw&state=5WqSSFEKy5bc HTTP/1.1" 200 8243
示例 URL 在 return 来自 Facebook 之后:
http://127.0.0.1:8000/accounts/facebook/login/callback/?code=AQArXlYq-4K8UBnuACFQZK39HvVAkZzYpnkP4hI223Y5kA1JmmjdF5yOeVHnrDRpxMOPFNviDzYeSSBvWccALZHGTl-87_A1-jtwpDF0UdgoGSVVd9KsrGrQDrHi0i6X9l_pO76-_Ro0N8ePr4L7uUd2G3aWAlZVtAKNNPG1kNBfOIwhb_RFRJrFvdLA5TlUXaGFdkEsRdMawyG8tdAstXdm5FcxKBRYMOE98j3yalHm5oLLeXOMKJ14EdDw8-DHU6f5Ze1DWaWWUd-3MFP-NvF2sG4XbA6n5McPrLgYZKb_YG8Slqgo5GDVrKHT1tNedzgceCjjDXT3TfbzZc9e-aQT9EycKAdGDr1TkKw9lO-Lqw&state=5WqSSFEKy5bc#_=_
Facebook 有效的 OAuth 重定向 URI:
Facebook 设置:
- 客户端 OAuth 登录 - 已启用
- Web OAuth 登录 - 已启用
- 嵌入式浏览器 OAuth 登录 - 已启用
管理设置:
- 客户端ID,密码ID输入
- 站点 1 设置为本地主机
Settings.py 应用程序:
INSTALLED_APPS = [
'home',
# Django Standard Apps
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Django Crispy forms
'crispy_forms',
# Django allauth
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.google',
]
Settings.py 社交:
SOCIALACCOUNT_PROVIDERS = \
{
'facebook':
{'METHOD': 'oauth2',
'SCOPE': ['email', 'public_profile'],
'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
#'FIELDS': [
#'id',
#'email',
#'name',
#'first_name',
#'last_name',
#'verified',
#'locale',
#'timezone',
#'link',
#'gender',
#'updated_time'],
'EXCHANGE_TOKEN': True,
#'LOCALE_FUNC': 'path.to.callable',
'VERIFIED_EMAIL': False,
'VERSION': 'v2.4'},
'google':
{ 'SCOPE': ['profile', 'email'],
'AUTH_PARAMS': { 'access_type': 'online' } }
}
我使用不同的重定向 URI 将此配置上传到带有 SSL 的测试服务器,但仍然有同样的问题。我有什么办法可以解决这个问题吗?
我是运行Python3.5.2,最新的pip install for all-auth
谢谢
斯蒂芬
我只是为此奋斗了一段时间。
我的诀窍是 Django-allauth "client" 代码需要是 Facebook "appid",不是 Facebook "client" .
当我使用 Django 管理区域(或者您可以编辑数据库)将 Facebook "client" 更改为 appid 时,问题解决了。
我在为 Django All-Auth 设置 Facebook 社交集成时遇到问题。我已经成功设置了 Google 登录,所以我不知道为什么一个有效而另一个无效。我认为这可能是由于我在 settings.py 中的 Facebook 配置所致,因为 Facebook 有很多可能的选项。
活动摘要:
- 点击我网站上的“通过 Facebook 登录”按钮
- 浏览器重定向到 Facebook 网站进行登录,facebook 请求密码。
- Facebook 接受密码
- 浏览器重定向回我的网站,但出现以下错误:"Social Network Login Failure, An error occurred while attempting to login via your social network account."
- 登录失败
知道如何诊断导致问题的确切原因吗?
虚拟主机消息示例:
[16/Nov/2016 02:14:37] "GET /accounts/facebook/login/callback/?code=AQArXlYq-4K8
UBnuACFQZK39HvVAkZzYpnkP4hI223Y5kA1JmmjdF5yOeVHnrDRpxMOPFNviDzYeSSBvWccALZHGTl-8
7_A1-jtwpDF0UdgoGSVVd9KsrGrQDrHi0i6X9l_pO76-_Ro0N8ePr4L7uUd2G3aWAlZVtAKNNPG1kNBf
OIwhb_RFRJrFvdLA5TlUXaGFdkEsRdMawyG8tdAstXdm5FcxKBRYMOE98j3yalHm5oLLeXOMKJ14EdDw
8-DHU6f5Ze1DWaWWUd-3MFP-NvF2sG4XbA6n5McPrLgYZKb_YG8Slqgo5GDVrKHT1tNedzgceCjjDXT3
TfbzZc9e-aQT9EycKAdGDr1TkKw9lO-Lqw&state=5WqSSFEKy5bc HTTP/1.1" 200 8243
示例 URL 在 return 来自 Facebook 之后:
http://127.0.0.1:8000/accounts/facebook/login/callback/?code=AQArXlYq-4K8UBnuACFQZK39HvVAkZzYpnkP4hI223Y5kA1JmmjdF5yOeVHnrDRpxMOPFNviDzYeSSBvWccALZHGTl-87_A1-jtwpDF0UdgoGSVVd9KsrGrQDrHi0i6X9l_pO76-_Ro0N8ePr4L7uUd2G3aWAlZVtAKNNPG1kNBfOIwhb_RFRJrFvdLA5TlUXaGFdkEsRdMawyG8tdAstXdm5FcxKBRYMOE98j3yalHm5oLLeXOMKJ14EdDw8-DHU6f5Ze1DWaWWUd-3MFP-NvF2sG4XbA6n5McPrLgYZKb_YG8Slqgo5GDVrKHT1tNedzgceCjjDXT3TfbzZc9e-aQT9EycKAdGDr1TkKw9lO-Lqw&state=5WqSSFEKy5bc#_=_
Facebook 有效的 OAuth 重定向 URI:
Facebook 设置:
- 客户端 OAuth 登录 - 已启用
- Web OAuth 登录 - 已启用
- 嵌入式浏览器 OAuth 登录 - 已启用
管理设置:
- 客户端ID,密码ID输入
- 站点 1 设置为本地主机
Settings.py 应用程序:
INSTALLED_APPS = [
'home',
# Django Standard Apps
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Django Crispy forms
'crispy_forms',
# Django allauth
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.google',
]
Settings.py 社交:
SOCIALACCOUNT_PROVIDERS = \
{
'facebook':
{'METHOD': 'oauth2',
'SCOPE': ['email', 'public_profile'],
'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
#'FIELDS': [
#'id',
#'email',
#'name',
#'first_name',
#'last_name',
#'verified',
#'locale',
#'timezone',
#'link',
#'gender',
#'updated_time'],
'EXCHANGE_TOKEN': True,
#'LOCALE_FUNC': 'path.to.callable',
'VERIFIED_EMAIL': False,
'VERSION': 'v2.4'},
'google':
{ 'SCOPE': ['profile', 'email'],
'AUTH_PARAMS': { 'access_type': 'online' } }
}
我使用不同的重定向 URI 将此配置上传到带有 SSL 的测试服务器,但仍然有同样的问题。我有什么办法可以解决这个问题吗?
我是运行Python3.5.2,最新的pip install for all-auth
谢谢 斯蒂芬
我只是为此奋斗了一段时间。
我的诀窍是 Django-allauth "client" 代码需要是 Facebook "appid",不是 Facebook "client" .
当我使用 Django 管理区域(或者您可以编辑数据库)将 Facebook "client" 更改为 appid 时,问题解决了。