記憶トークン
-
ブラウザがパスワードを持っていて(cookiesに保存している)、それをハッシュ化させてデータベースのハッシュ化パスワードと照らし合わせる。IDを暗号化したものをユーザーのブラウザに持っておいて、sample_appを経由して復号する。復号済みIDとハッシュ化パスワードを使って、認証を行い、trueならばセッション情報を再構築(復元)する。ユーザーIDは復号させるためハッシュ化しない。
ブラウザが持っているパスワードはランダムで良い。なぜなら、ブラウザとアプリが使用するだけで、人間は間に入らないから。(これを一般的にトークンという。パスワードは人間が作る情報であるのに対し、トークンはコンピュータが作成・管理する情報。) -
attr_accessorはメタプログラミング。データベースには保存しない仮想的なもの。
※メタプログラミング:プログラムを記述するプログラムを書くこと。
*raiseメソッドを入れるとエラーを網羅的に探索できる。