コンテンツにスキップ

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)

パスワード変更を行います。

  1. フォームから送信された oldpass、newpass、newpass2を取得し、変数に代入します。

  2. oldpassが正しいか確認し、正しくなければ「現在のパスワードが違います」とフラッシュメッセージを設定し、/passchangeにリダイレクトします。

  3. newpassとnewpass2が一致しているか確認し、一致していなければ「新しいパスワードが一致しません」とフラッシュメッセージを設定し、/passchangeにリダイレクトします。

  4. 新たなパスワードをハッシュ化し、userのupassに設定し、commitします。「パスワードを変更しました」とフラッシュメッセージを設定し、/passchangeにリダイレクトします。

※login_post関数を参考にします。