Flask-login doc mówi powinniśmy zweryfikować za pomocą next_is_valid()
obok, ale nie mogę znaleźć takiej metody:next_is_valid() nie istnieje w oknie dialogowym w kolbie?
Warning: You MUST validate the value of the next parameter. If you do not, your application will be vulnerable to open redirects.
@app.route('/login', methods=['GET', 'POST'])
def login():
# Here we use a class of some kind to represent and validate our
# client-side form data. For example, WTForms is a library that will
# handle this for us.
form = LoginForm()
if form.validate_on_submit():
# Login and validate the user.
login_user(user)
flask.flash('Logged in successfully.')
next = flask.request.args.get('next')
if not next_is_valid(next):
return flask.abort(400)
return flask.redirect(next or flask.url_for('index'))
return flask.render_template('login.html', form=form)
Running to pojawia się błąd:
NameError: global name 'next_is_valid' is not defined
A jeśli robię:
from flask.ext.login import next_is_valid
>> ImportError: cannot import name next_is_valid
Gdzie jest next_is_valid()
, a jeśli nie istnieje, w jaki sposób sprawdzić poprawność parametru next
?
Nie oznacza to, że musisz potwierdzić 'next' za pomocą' next_is_valid'. To tylko przykładowa funkcja; masz rację, to nie istnieje. Musisz zdecydować, czy "następny", jeśli jest ważny, na podstawie własnych kryteriów. 'next' to adres URL do przekierowania do udanego logowania. Mam nadzieję, że to pomaga niektórym. – bnjmn
@ bnjmn to powinno być dodane jako odpowiedź, myślę, że z pewnymi odniesieniami;) –