Flask-User自动登录问题

时间:2017-08-10 17:17:59

标签: python html flask flask-login

我对Flask和Flask-User没有太多经验,所以请耐心等待。在我的应用程序中,我想实现这两个功能:

  1. 注册后自动登录
  2. 电子邮件验证(用户应该能够在不验证的情况下登录)
  3. 在我看来,在我的配置中启用这三个选项应该可以解决问题:

        USER_ENABLE_LOGIN_WITHOUT_CONFIRM_EMAIL = True,
        USER_ENABLE_CONFIRM_EMAIL=True,
        USER_AUTO_LOGIN_AFTER_REGISTER=True,
    

    但启用这些设置后,自动登录功能无效。 之后,我看到here设置USER_ENABLE_CONFIRM_EMAIL=False将解决问题。所以我尝试了这些设置:

        USER_ENABLE_LOGIN_WITHOUT_CONFIRM_EMAIL = True,
        USER_ENABLE_CONFIRM_EMAIL=False,
        USER_AUTO_LOGIN_AFTER_REGISTER=True,
    

    现在,自动登录可以正常工作,但电子邮件确认却没有。当我使用url_for('user.resend_confirm_email')时,我收到此错误:

    werkzeug.routing.BuildError: Could not build url for endpoint 'user.resend_confirm_email'. Did you mean 'user.profile' instead?
    

    我认为配置设置存在问题。感谢帮助。

1 个答案:

答案 0 :(得分:0)

您是否尝试在注册后立即登录用户并向用户发送确认电子邮件?不幸的是,经过大量的反复试验后,我得出的结论是Flask-User不支持这种特定的注册流程。您可以在注册或用户确认电子邮件后启用立即登录,但不能同时启用。

但是,您可以在用户点击电子邮件确认后启用自动登录:

USER_AUTO_LOGIN_AFTER_CONFIRM = True

点击确认链接后,用户可以被重定向到任何URL:

USER_AFTER_CONFIRM_ENDPOINT = 'insert_route'

这对我来说似乎是一个合理的妥协,也是我选择在我的应用程序中使用的。