django-allauth是否可以设置只接受Google登录?

3
我正在使用Django框架实现一个Web应用程序。 在我的业务中,我需要让用户只能通过Google登录来访问该应用程序。
我也不需要在我的数据库中注册用户,这不是必需的。 我只需要用户使用他的Google帐户进入网站,这样我就能获取他的真实电子邮件地址,以便将会话结果发送给他。 这是一个一次性应用程序。
我正在使用django-allauth,但它默认公开了本地注册和登录的方式。 有没有办法禁用每种本地注册/登录并让用户只能通过Google登录进入应用程序?
谢谢。
1个回答

0

https://django-allauth.readthedocs.io/en/latest/advanced.html#creating-and-populating-user-instances 开始,你需要:

  • 在自定义的ACCOUNT_ADAPTER上禁用注册
  • 仅通过社交账户(Google)在自定义SOCIALACCOUNT_ADAPTER上启用注册

实际操作中:

# settings.py

ACCOUNT_ADAPTER = 'myapp.adapters.AccountAdapter'
SOCIALACCOUNT_ADAPTER = 'myapp.adapters.SocialAccountAdapter'

# myapp/adapters.py
from allauth.account.adapter import DefaultAccountAdapter
from allauth.socialaccount.adapter import DefaultSocialAccountAdapter


class AccountAdapter(DefaultAccountAdapter):

    def is_open_for_signup(self, request):
        return False


class SocialAccountAdapter(DefaultSocialAccountAdapter):

    def is_open_for_signup(self, request, sociallogin):
        return bool(sociallogin)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接