我对Flask和Flask-User没有太多经验,所以请耐心等待。在我的应用程序中,我想实现这两个功能:
在我看来,在我的配置中启用这三个选项应该可以解决问题:
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?
我认为配置设置存在问题。感谢帮助。
答案 0 :(得分:0)
您是否尝试在注册后立即登录用户并向用户发送确认电子邮件?不幸的是,经过大量的反复试验后,我得出的结论是Flask-User不支持这种特定的注册流程。您可以在注册或用户确认电子邮件后启用立即登录,但不能同时启用。
但是,您可以在用户点击电子邮件确认后启用自动登录:
USER_AUTO_LOGIN_AFTER_CONFIRM = True
点击确认链接后,用户可以被重定向到任何URL:
USER_AFTER_CONFIRM_ENDPOINT = 'insert_route'
这对我来说似乎是一个合理的妥协,也是我选择在我的应用程序中使用的。