Google OAuth2 白名单,从列表中删除未授权

Google OAuth2 Whitelist, remove not authorized from list

我有一个 Django/python 站点并设置了 Python 社交身份验证以允许使用 google 帐户进行身份验证,实际上特定于我的域。我们有一个通过 google 个帐户托管的域。

我已将白名单设置为仅接受来自我域的电子邮件帐户。那工作正常。但是,当我进入身份验证 window 时,它显示了我拥有的所有 google 帐户 - 有两个 gmail 帐户由于白名单选项而无法进行身份验证,但这些帐户仍然显示。用户在尝试收到讨厌的错误消息之前不会知道他们不能使用其他帐户 "AuthForbidden: Your credentials aren't allowed."

我有什么方法可以将他们看到的列表限制为他们实际可以使用的帐户?我有一个同事为在 ColdFusion 上运行的另一个网站设置了这个,他将元内容 headers 设置为白名单和 运行 通过 javascript 登录,这允许他使用范围指定域,这确实限制了仅对指定域的帐户可见的帐户。

提前致谢。

更新:当我被重定向到 google 授权页面时,我可以将 &hd=domain.com 添加到限制显示的查询字符串中。如何在重定向到此登录页面时强制设置此变量?

找到了。

SOCIAL_AUTH_GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = {
    'hd': 'domain.com',
    'access_type': 'online',
}

我曾尝试将它添加到源代码中,但是当我打开我的页面时它会自动让我登录,所以我认为有什么问题。事实证明,如果你修改这些参数,默认情况下它会将 access_type 设置为离线,所以它会自动让我离线登录。我必须添加 'access_type': 'online' 来防止这种情况。