Проверка токена CSRF работает для формы POST (маршрут /change_password), но не для формы обновления электронной почты ( маршрут /update_email).
Каждый раз, когда я пытаюсь перехватить запрос и удалить токен из запроса на обновление электронной почты, он принимается.
Если я делаю то же самое для формы смены пароля, он отклоняется с сообщением «CSRF токен сеанса отсутствует». ошибка
Код: Выделить всё
@app.route('/update_email', methods=['GET'])
def update_email():
if 'username' not in session:
return redirect(url_for('login'))
username = session['username']
new_email = request.form.get('email')
if new_email:
users[username]['email'] = new_email
return redirect(url_for('profile'))
@app.route('/change_password', methods=['POST'])
def change_password():
if 'username' not in session:
return redirect(url_for('login'))
username = session['username']
new_password = request.form.get('new_password')
if new_password:
users[username]['password'] = new_password
return "Password changed successfully", 200
return "New password is required", 400
Код: Выделить всё
Welcome, {{ username }}!
Your email: {{ email }}
Update Email
Change Password
[url={{ url_for(]Logout[/url]
Подробнее здесь: https://stackoverflow.com/questions/786 ... get-method