2

我已经将我的工作 Django 应用程序克隆到基于 Debian 的 Linux 发行版中,我已经安装了所有依赖项,但是当尝试使用电子邮件和密码或 Google 帐户登录时,它会抛出以下错误:

ImportError: Module "social_core.backends.google" does not define a "GoogleOpenId" attribute/class

我有以下身份验证依赖项:

django-allauth==0.42.0
django-rest-auth==0.9.5
google-auth==1.27.0
oauthlib==3.1.0
requests-oauthlib==1.3.0
social-auth-app-django==3.1.0
social-auth-core==4.0.3

它在 Ubuntu 和 MacOs 中运行良好,克隆到这个基于 Debian 的发行版时出现了问题。谷歌对这个错误只字未提,我不知道从哪里开始搜索,我唯一发现的是我们将它用作身份验证后端:

AUTHENTICATION_BACKENDS = (
    'social_core.backends.open_id.OpenIdAuth',
    'social_core.backends.google.GoogleOpenId', 
    'django.contrib.auth.backends.ModelBackend'
)
4

2 回答 2

2

感谢下面的评论,它解释了 python-social-auth 弃用,我通过将social-auth-core包从版本4.0.3降级解决了这个问题3.3.3

于 2021-02-23T13:30:38.050 回答
0

GoogleOpenID 不再使用,因此已从 python-social-auth 中删除。但他们一定忘记更新文档了。

https://github.com/python-social-auth/social-core/issues/472

https://github.com/python-social-auth/social-docs/issues/65

于 2021-02-23T05:03:37.240 回答