Python 为什么设置memory=False仍然让我登录?
使用Flask登录,我可以登录和注销用户,以及注册新用户。如果我登录,然后导航到其他站点,然后返回到我的站点,我仍然登录。Python 为什么设置memory=False仍然让我登录?,python,flask,flask-login,Python,Flask,Flask Login,使用Flask登录,我可以登录和注销用户,以及注册新用户。如果我登录,然后导航到其他站点,然后返回到我的站点,我仍然登录。login\u用户(user,memory=False)不应该阻止这种情况吗?我是不是误解了这是怎么回事 在views.py中,除其他代码外,我还有: from flask.ext.login import login_user, logout_user, current_user, login_required @app.route('/signup', methods=
login\u用户(user,memory=False)
不应该阻止这种情况吗?我是不是误解了这是怎么回事
在views.py中,除其他代码外,我还有:
from flask.ext.login import login_user, logout_user, current_user, login_required
@app.route('/signup', methods=['GET', 'POST'])
def signup():
form = SignupForm()
if form.validate_on_submit():
user = User.query.filter_by(email = form.email.data.lower()).first()
if user:
flash("Email already exists!")
return redirect(url_for('signup'))
elif form.password.data != form.password2.data:
flash("Passwords do not match.")
return redirect(url_for('signup'))
else:
newuser = User(email=form.email.data, nickname=form.username.data)
newuser.pwdhash = generate_password_hash(form.password.data)
db.session.add(newuser)
db.session.commit()
login_user(newuser, remember=False)
flash("Thank you for registering")
return redirect(url_for('index'))
return render_template('signup.html', form=form)
@app.route('/login', methods=['GET', 'POST'])
def login():
form = SigninForm()
if form.validate_on_submit():
user = User.query.filter_by(email = form.email.data.lower()).first()
if user and check_password_hash(user.pwdhash, form.password.data):
login_user(user, remember=False)
return redirect(url_for('index'))
else:
flash('huh')
return redirect(url_for('login'))
else:
return render_template('login.html', form=form)
除了Flask的会话cookie之外,Flask登录的记住标志还设置了一个特殊cookie。默认情况下,此记住cookie会在浏览器重新启动时持续30天,但仅当记住为true时才会创建 即使记住为false,Flask的会话cookie仍然存在,因此您将在单个浏览器会话期间保持登录状态。Flask的会话cookie也可以持久化,但这超出了Flask登录的范围 你观察到的行为是完全正常的。当某人离开您的站点时,无法自动将其注销当前会话 我的重点是: cookie将保存在用户的计算机上,然后Flask Login将自动从该cookie恢复用户ID(如果该cookie不在会话中)