コンテンツにスキップ

第8章 ログアウト

1 app.py

ログアウトの処理も作成します。app.py でログアウト処理を作成します。セッションを全て削除し、ログインページにリダイレクトします。

@app.get('/logout')
def logout():
    session.clear()
    return redirect('/login')

2 関数index

現状ではログインしなくても投稿一覧を見ることができます。ログインしないと見れないように修正します。web.py のindex関数にif文を追加し、セッションにuidが存在しない場合、ログインしていないのでログインページに移動するようにします。

    if "uid" not in session:
        return redirect("/login")

3 base.html

現状ではログインしていない状況でも、新規投稿やログアウトが表示されてしまいます。

そこで、前ページ共通のhtmlであるbase.htmlを修正します。新規投稿、ログアウトの部分をifで囲み、sessionにuidがあるときのみ表示します。

    {% if "uid" in session %}
    <a href="/upload">新規投稿</a>
    <a href="/logout">ログアウト</a>
    {% endif %}