2016-06-19 2 views
0

Отправляю токен подтверждения пользователям после регистрации, чтобы подтвердить их электронную почту. Проблема заключается в том, что я не могу получить метод подтверждения, так как он требует, чтобы пользователь заходил в систему, и как только они переходят к методу входа в систему, я не могу решить, как перенаправить их обратно на метод подтверждения.Флажок при перенаправлении входа

Обратите внимание на код в значительной степени основывается на (очень хорошо) книги «Колба 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) 

Проблема у меня в том, что после входа пользователя в них не перенаправлены на маршрут подтвердить и я не могу работать, как перенаправить, чтобы подтвердить в этом случае, когда пользователь просто входа в систему чтобы они могли реагировать на ссылку электронной почты для регистрации. Есть идеи?

ответ

0

Я также изучаю эту книгу. Хотя я не знаю, что с тобой, я могу показать вам какую-то ключевую информацию, чтобы решить вашу проблему.

Таким образом, вы можете проверить свой URL-адрес, если у него есть некоторые проблемы. Кроме того, я рекомендую вам отлаживать ваш код в pycharm, потому что вы можете установить изменения контрольной точки и отслеживания переменных. Удачи.

Смежные вопросы