身体:
我正在尝试使用 django-allauth 在我的 Django 项目中设置 Google 身份验证,但 Google 登录选项没有出现在我的登录页面上。我怀疑我可能缺少配置步骤或设置。
我已通过检查链接确认站点 ID 正确:http://127.0.0.1:8000/admin/sites/site/3/change/
有人可以帮助我确定我可能遗漏或做错了什么吗?
这是我的settings.py的相关部分:
SOCIALACCOUNT_PROVIDERS = {
"google": {
"app": [
{
"client_id": "myid",
"secret": "mysecret",
},
],
"SCOPE": [
"profile",
"email",
],
"AUTH_PARAMS": {
"access_type": "online",
},
}
}
SITE_ID = 3
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'allauth.account.middleware.AccountMiddleware',
'livereload.middleware.LiveReloadScript',
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATES_DIR],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'core.views.site_settings',
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
LOGIN_REDIRECT_URL = 'login' # Redirect after login
LOGOUT_REDIRECT_URL = 'home' # Redirect after logout
确保您的 settings.py 文件包含 AUTHENTICATION_BACKENDS 设置:
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]
为了使 Google 身份验证提供程序正常运行,请确保您已安装所需的依赖项:
requests
和 jwt
。
https://docs.allauth.org/en/latest/release-notes/recent.html#backwards-inknown-changes
pip install requests
pip install jwt
您可以在官方文档中找到详细的设置说明。