第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 %}