Django allauth
是一个 Django 应用的集合,用于处理用户注册、登录、密码管理等功能。其中,社交登录(Social Login)功能允许用户通过第三方平台(如 Facebook、Google 等)进行登录。
Django allauth
支持多种社交登录类型,包括但不限于 Facebook、Google、Twitter 等。
适用于需要简化用户注册和登录流程的网站和应用,特别是那些希望提高用户转化率和信任度的场景。
在使用 Django allauth
进行 Facebook 社交登录时,发现无需请求电子邮件地址即可完成登录。
这通常是因为在配置 Facebook 应用时,未正确设置权限或回调 URL,导致 Facebook 未返回电子邮件地址。
email
权限。Django allauth
中的设置一致。Django allauth
配置:
在 settings.py
文件中,确保以下配置正确:Django allauth
配置:
在 settings.py
文件中,确保以下配置正确:Django allauth
的回调视图正确处理 Facebook 返回的数据,并提取电子邮件地址。Django allauth
的回调视图中添加日志,检查 Facebook 返回的数据,确保包含电子邮件地址。以下是一个简单的示例,展示如何在 Django allauth
中配置 Facebook 社交登录:
# settings.py
INSTALLED_APPS = [
...
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
...
]
SITE_ID = 1
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'APP': {
'client_id': 'YOUR_FACEBOOK_APP_ID',
'secret': 'YOUR_FACEBOOK_APP_SECRET',
'key': ''
},
'SCOPE': ['email', 'public_profile'],
'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
'METHOD': 'oauth2',
'LOCALE_FUNC': lambda request: 'en_US',
'VERIFIED_EMAIL': False,
'VERSION': 'v7.0',
}
}
通过以上步骤,你应该能够解决在使用 Django allauth
进行 Facebook 社交登录时未请求电子邮件地址的问题。
领取专属 10元无门槛券
手把手带您无忧上云