Отправляю токен подтверждения пользователям после регистрации, чтобы подтвердить их электронную почту. Проблема заключается в том, что я не могу получить метод подтверждения, так как он требует, чтобы пользователь заходил в систему, и как только они переходят к методу входа в систему, я не могу решить, как перенаправить их обратно на метод подтверждения.Флажок при перенаправлении входа
Обратите внимание на код в значительной степени основывается на (очень хорошо) книги «Колба Web Development» по Гринберг 2014.
Мы начинаем здесь с новым пользователем подписавшись:
@auth.route('/signup', methods=['GET', 'POST'])
def signup():
#validate form and create user
...
token = user.generate_confirmation_token()
send_email(user.email, 'Please Confirm Email Address',
'email/confirm', user=user, token=token)
return redirect(url_for('auth.login'))
return render_template('auth/register.html', form=form)
Новый пользователь посылается и адрес электронной почты, когда пользователь нажимает на ссылку в письме, они будут отправлены на этот маршрут:
@auth.route('/confirm/<token>')
@login_required
def confirm(token):
if current_user.confirmed:
return redirect(url_for('main.index'))
if current_user.confirm(token):
#do something here
else:
#message
return redirect(url_for('main.index'))
Как Войти требуется, чтобы добраться до конечной точки подтверждения, пользователь направляется здесь е рвые:
@auth.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(email=form.email.data).first()
if user is not None and user.verify_password(form.password.data):
login_user(user)
return redirect(request.args.get('next') or url_for('main.index'))
return render_template('auth/login.html', form=form)
Проблема у меня в том, что после входа пользователя в них не перенаправлены на маршрут подтвердить и я не могу работать, как перенаправить, чтобы подтвердить в этом случае, когда пользователь просто входа в систему чтобы они могли реагировать на ссылку электронной почты для регистрации. Есть идеи?