Yesod で HashDB を用いた認証の実装
2013-09-11
基本的には以下のページを見ながら実装すれば良いと思う。
http://hackage.haskell.org/packages/archive/yesod-auth/1.2.1/doc/html/Yesod-Auth-HashDB.html
たとえば、以下のようにテーブルを作っておく。
User
user Text
password Text
salt Text
UniqueUser user
deriving
salt を適用したパスワードのハッシュ値は sha1sum で得ることができるので、これを手動で DB に格納してやればよい。 sqlite3 なら、
$ sqlite3
sqlite> insert into user values (1, "username", "salt+password''s hash", "salt");
とする。
ログイン機能は Yesod.Auth が提供してくれているので getAuthR の実装は不要。
あとは、認可が必要な機能の最初で、 maybeAuthId や requireAuthId などを適宜呼んでやればよい。
getSecretR = do
req <- requireAuthId
2013-09-11 01:38:45.103145 JST