使用Django allauth自定义登录流程

3
我在我的django项目中使用django-allauth提供用户登录和身份验证。一切顺利,但现在我遇到了两个问题,不知道是否可以在当前应用程序中实现。感谢任何帮助:
  1. 如果我们设置ACCOUNT_EMAIL_VERIFICATION = True,则在注册后用户帐户未激活,直到用户通过电子邮件链接激活。但我想做的是允许用户登录,但暂时保持帐户活动状态。比方说,如果用户在7天内未使用链接激活帐户,则会封锁该帐户。
  2. 我想允许用户使用电子邮件和用户名登录,这可能吗?根据当前的readme,我们只能使用其中一个。
真的很感谢任何形式的帮助。
更新
我已经为第二个问题编写了一个hack,如果您愿意,可以查看我在django-alluth的fork中:https://github.com/sachingupta006/django-allauth
1个回答

3

关于第一个问题,电子邮件确认应用程序会存储确认已发送的数据。我建议安排一个每天运行的cronjob(定时任务),并停用所有未经过7天确认的帐户。


是的,我就是那个 :) - Sachin
@Sachin,你能分享一下你具体是怎么做到的吗?这会对我(以及其他人)有所帮助。 - Samudra
@Samudra 首先,您需要创建一个自定义命令来查找所有比特定天数更早且未激活的用户帐户,然后删除它们。您可以在此处查看http://andrewwilkinson.wordpress.com/2009/03/06/creating-django-management-commands/,了解如何创建自定义Django管理命令。接下来,您需要编写一个cron作业来运行此命令,例如每天一次,您可以在此处查看如何编写cron作业http://glweb.biz/blog/?p=17 如果这些无法帮助您,那么我可以向您提供更详细的信息。 - Sachin
谢谢!我认为那应该足够了,如果不行的话我会再在这里留言 :) - Samudra

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