Django Social Auth 和非活跃用户

发布于 2024-11-29 23:48:24 字数 297 浏览 1 评论 0原文

对于我的网站,我使用 Django auth 应用程序和 django-social-auth (https://github.com /omab/django-social-auth)应用程序都工作正常。

当由于业务逻辑我将社交登录用户标记为不活动时,就会出现问题。现在,当该用户尝试登录时,他会自动重定向回登录页面。

当用户重定向到登录页面时,我是否可以以某种方式通知用户他的帐户被标记为非活动状态?

For my site I am using Django auth app and django-social-auth (https://github.com/omab/django-social-auth) apps and both are working fine.

The problem arises when due to business logic I mark a social login user as inactive. Now when this users tries to login he is redirected back to login page automatically.

Can I somehow notify the user that his account is marked as inactive when user is redirected to login page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自控 2024-12-06 23:48:24

有一个选项:

SOCIAL_AUTH_INACTIVE_USER_URL = '/inactive-user/'

来自 手册

非活动用户在尝试进行身份验证时可以被重定向到此 URL。

There is an option for this:

SOCIAL_AUTH_INACTIVE_USER_URL = '/inactive-user/'

From manual:

Inactive users can be redirected to this URL when trying to authenticate.

你能给我们看一些代码吗?

无论如何,我认为你可以使用 Django Messages 应用程序来解决这个问题。您将覆盖您的login()或authenticate()函数,并在测试用户是否处于活动状态的部分中,您将执行一些任意操作;在这种情况下,您将设置一条消息来解释错误,即系统无法登录用户,因为用户处于非活动状态。在您的登录视图中,您将检查是否设置了任何消息,在这种情况下,您只需渲染它们即可。

Can you show us some code?

Anyway, I think you could solve this with Django Messages app. You'd override your login() or authenticate() functions and in the section which tests whether the user is_active, you'd make some arbitrary action; in this case you would set a message explaining the error, that the system couldn't log the user in because the user is inactive. And in your login view, you'd check whether there are any messages set and in such a case you'd simply render them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文