プログラミング備忘録

初級プログラマ。python、DL勉強中

Flaskでsessionを使用する

参考サイトを使用して,session管理について実装してみた

from flask import Flask, session, redirect, url_for,  request

app = Flask(__name__)

@app.route('/')
def index():
    if 'username' in session:
        return 'Hello ' + str(session['username'])
    return 'You are not logged in'

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return '''
        <form action="" method="post">
            <p><input type=text name=username>
            <p><input type=submit value=Login>
        </form>
    '''

@app.route('/logout')
def logout():
    session.pop('username', None)
    return redirect(url_for('index'))

app.secret_key = 'hogehogehoge'

if __name__ == "__main__":
    app.run(debug=True)

cookieの実装はこれとはまた別らしい。 secret_keyは暗号化を行う際の補助情報らしい(saltに相当?)

  • ユーザーごとに異なるSaltであること
  • ある程度の長さを確保すること を守って実装したほうがいいようなのでhogehogehogeではまずそう。。。

参考サイト

PythonのFlaskで学ぶWebアプリケーション制作講座 第6章 〜セッション〜

[Python] Flaskを解読するapp.secret_key Web | CODE Q&A 問題解決 [日本語]

Salt と HMAC の違い