私はFlaskフレームワークを初めて使用しています。私は道に沿ってthisチュートリアルに従っています。session.pop()はクッキーをクリアしません
シリーズのUser Authenticationチュートリアルごとに、私は以下で立ち往生していたよう:
チュートリアルでは、ユーザーが/logout
ルートを押すことでログアウトすると、発生した最初のものは次のとおりです。
session.pop('logged_in', None)
上記の動画のとおり、ユーザーが/logout
にアクセスした瞬間に、Cookieもブラウザから削除されます。私の場合は
- 、チュートリアルとまったく同じ設定で、セッションはサーバー側から無効になっかもしれませんが、クッキーを削除/いずれにも変更されません:今ここに2つの質問が
/logout
ルートがヒットした後、ブラウザから何か間違っていますか? session.pop(...)
=> how/whyはブラウザのフロントエンドから何かを削除しますか?それはサーバー上のものだけを制御することができますか?下記は、参考のために
すべてのセッションの最初とクッキーが同じではありません
# import the Flask class from the flask module
from flask import Flask, render_template, redirect, url_for, request, session, flash
# create the application object
app = Flask(__name__)
app.secret_key = 'my precious'
# use decorators to link the function to a url
@app.route('/')
def home():
return "Hello, World!" # return a string
#return render_template(index.html)
@app.route('/welcome')
def welcome():
return render_template('welcome.html') # render a template
# route for handling the login page logic
@app.route('/login', methods=['GET', 'POST'])
def login():
error = None
if request.method == 'POST':
if request.form['username'] != 'admin' or request.form['password'] != 'admin':
error = 'Invalid Credentials. Please try again.'
else:
session['logged_in'] = True
flash('You were just logged in')
return redirect(url_for('home'))
return render_template('login.html', error=error)
@app.route('/logout')
def logout():
session.pop('logged_in', None)
flash('You were just logged out')
return redirect(url_for('welcome'))
# start the server with the 'run()' method
if __name__ == '__main__':
app.run(debug=True)
それは無効になります、0にクッキーの有効期限を設定することができます。バックエンドフラスコのアプリが既にポップアップしていたにもかかわらず、セッションはブラウザに残りました。だから私はフラスコのバックエンドは、ブラウザで直接セッションを削除することはできないと思う。私の推測では、セッションにタイムアウトが指定されている可能性はありますか? – ifelsemonkey