You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django项目django-allauth配置Google认证后登录选项不显示求助

Django-allauth配置Google认证后登录页无登录选项问题

我正在Django项目中使用django-allauth配置Google认证,但登录页面上未显示Google登录选项。

当前配置代码

INSTALLED_APPS = [
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.google',
   
]

MIDDLEWARE = [
   'allauth.account.middleware.AccountMiddleware',
]
SITE_ID = 1
LOGIN_REDIRECT_URL='/'
SOCIALACCOUNT_PROVIDERS = {
    'google': {
        'SCOPE': [
            'profile',
            'email',
        ],
        'AUTH_PARAMS': {
            'access_type': 'online',
        },

    }
}

排查与解决步骤

  • 确认模板包含社交登录组件:登录页面模板(默认是account/login.html)必须加载社交账号模板标签并渲染登录选项,添加以下代码:

    {% load socialaccount %}
    {% get_providers as socialaccount_providers %}
    {% for provider in socialaccount_providers %}
      <a href="{% provider_login_url provider.id process=process scope=scope auth_params=auth_params %}">使用{{ provider.name }}登录</a>
    {% endfor %}
    

    若使用默认模板,需确保模板继承结构正确,或直接引入allauth的社交登录模板片段。

  • 绑定Social App与对应Site:在Django后台Social Accounts > Social Apps页面,检查创建的Google应用是否已勾选SITE_ID=1的站点,未绑定的话不会显示登录选项。

  • 核对SITE_ID与站点域名:确保settings.py的SITE_ID=1和后台Sites中对应站点的ID一致,同时该站点的域名需匹配当前项目访问域名(比如本地开发设置为localhost:8000)。

  • 补全必要中间件:仅添加allauth.account.middleware.AccountMiddleware不够,需保留Django基础中间件,完整配置如下:

    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',
    ]
    
  • 执行迁移并重启服务:运行python manage.py migrate确保allauth数据库表生成,之后重启Django开发服务器,让配置生效。

  • 检查Google OAuth客户端配置:在Google Cloud控制台中,确认OAuth 2.0客户端ID的授权重定向URI设置为http://你的域名/accounts/google/login/callback/(本地开发为http://localhost:8000/accounts/google/login/callback/),路径必须与django-allauth的回调地址完全一致。

内容的提问来源于stack exchange,提问作者sayeed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:27:25