搞了半天终于可以正常运行了,但是还是感觉一团浆糊,总结一下,用户端要完成的操作是这样的:
1,注册(这时候数据库已经有用户的账户密码了,但是User.confirmed=False,这时是无法正常登陆的)
2,点开Email验证地址之前登陆(作者构建了一个中间状态路由,当用户注册之后但未确认时登陆就会被重定向到这个路由,这时APP保存了用户的登录状态(但是没有正常权限),之后再点击邮箱里的验证链接就可以验证成功了,不登录的话点击验证会抛出401错误的,因为验证路由(confirm)被@login_required上锁的,如果去掉@login_required的话也会报错,因为我们需要验证链接中的验证信息是否与注册的ID相同,相同才能注册,当然了,我们也可以直接拿链接中的验证信息解码之后的ID与数据库进行交互激活账号,但是这样安全系数较差,最好的办法是在用户注册之后实现自动登录,这样对用户比较友好),验证成功之后网页跳转到主页。
在用户操作的过程中,应用程序是怎么运行的?
1,接收用户的GET请求返回注册页面
2,用户填写资料之后接收用户POST请求重定向到登录页面
@auth.route('/register', methods=['GET', 'POST'])
def register():
#注册
form = RegistrationForm()
if form.validate_on_submit():
user = User(email=form.