パスワード更新画面の挙動

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

まだまだ認証ネタは続きます。

初期状態としては、パスワードなし状態からサインインする訳ですが、パスワードが空の場合は自動的にパスワードの設定を促すダイアログが現れるようにしてあります。

通常のパスワード変更のダイアログは、「現パスワード」、「新パスワード」、「新パスワード(確認用)」と3つの入力欄がありますが、初めてパスワードを設定するときは、「現パスワード」の入力欄は不要です。

そこで初期状態では、「新パスワード」と「新パスワード(確認用)」の2つだけ入力欄を作っておきます。 自動でパスワード設定ダイアログが出るときは、そのまま表示します。
パスワード変更のリンクをクリックしたときは、jQueryで「現パスワード」の入力欄を追加します。 要素を追加したり削除したりというのが、jQueryなら簡単に出来るのがいいですね。

入力欄のバリデーション(空になってないか?、確認用の入力と一致しているか?)は、ダイアログのJSの中で確認しています。 パスワードの長さについてもチェックする予定です。

$.ajaxのPOSTメソッドで、パスワード変更用のPHPファイルに現/新パスワードを送り、MySQLのデータを更新しています(ユーザー名は$_SERVER['PHP_AUTH_USER']で取れているので)。
変更したパスワードをD/Bに書き込むついでに、更新日付も記録しています。

ちなみにアクセス記録ですが、「最後に使った日付が知りたい」だけなので、トップページにだけD/Bに書き込むクエリを入れてあります。 本来は各ページに仕込むのが筋なんでしょうが、変なボトルネックになってしまってもイヤだし、詳細に追いかける必要がある場合は、ApacheやMySQLのログを見ればわかりますしね。