14 パスワード変更(編集)
パスワードが変更できるようにします。
14.1 user.html
ログインしているユーザの/userを閲覧した場合、パスワード変更へのリンクを出すようにします。
リンク先:/passchange
※ヒント:toukou.htmlのoperation
14.2 app.py
関数 passchange_get を作成します。 URLは /passchange (get) パスワード変更用の画面 passchange.html を表示します。
14.3 passchange.html
login.htmlをコピーして、passchange.htmlを作成します。
フォームの送信先は /passchange にpostで送信します。
入力項目は3つです。
- 現在のパスワード name="oldpass"
- 新たなパスワード name="newpass" ^ 新たなパスワード(確認用) name="newpass2"
14.4 app.py
関数 passchange_post を作成します。 URLは /passchange (post)
パスワード変更を行います。
-
フォームから送信された oldpass、newpass、newpass2を取得し、変数に代入します。
-
oldpassが正しいか確認し、正しくなければ「現在のパスワードが違います」とフラッシュメッセージを設定し、/passchangeにリダイレクトします。
-
newpassとnewpass2が一致しているか確認し、一致していなければ「新しいパスワードが一致しません」とフラッシュメッセージを設定し、/passchangeにリダイレクトします。
-
新たなパスワードをハッシュ化し、userのupassに設定し、commitします。「パスワードを変更しました」とフラッシュメッセージを設定し、/passchangeにリダイレクトします。
※login_post関数を参考にします。