gpt4 book ai didi

django-allauth:仅允许来自特定Google Apps域的用户

转载 作者:行者123 更新时间:2023-12-04 03:07:09 28 4
gpt4 key购买 nike

我是Django的新手。我使用django-allauth设置了单击登录。我从Google api控制台获取了域凭据(client_id和secret_key)。但是问题是django-allauth是,允许我从任何Google帐户登录,同时我希望将电子邮件地址限制为我的域(@ example.com而不是@ gmail.com)

django-social-auth具有为此列出的白名单domains参数,如何在allauth中包括此信息?
在django-social-auth上花了几个小时后,我发现django-allauth设置起来要容易得多

任何帮助将非常感激。

最佳答案

回答我自己的问题-
您要做的是在社交帐户提供商对用户进行身份验证之后,在用户继续进入其个人资料页面之前,停止登录。您可以使用
中的DefaultSocialAccountAdapter 类的 pre_social_login 方法allauth/socialaccount/adaptor.py

Invoked just after a user successfully authenticates via asocial provider, but before the login is actually processed(and before the pre_social_login signal is emitted).You can use this hook to intervene, e.g. abort the login byraising an ImmediateHttpResponseWhy both an adapter hook and the signal? Intervening ine.g. the flow from within a signal handler is bad -- multiplehandlers may be active and are executed in undetermined order.


做类似的事情
from allauth.socialaccount.adaptor import DefaultSocialAccountAdapter

class MySocialAccount(DefaultSocialAccountAdapter):
def pre_social_login(self, request, sociallogin):
u = sociallogin.account.user
if not u.email.split('@')[1] == "example.com"
raise ImmediateHttpResponse(render_to_response('error.html'))
这不是一个确切的实现,但是类似的东西可以工作。

关于django-allauth:仅允许来自特定Google Apps域的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19113623/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com