認証の処理

現在の仕様では,memberで始まるパスにアクセスするときだけ認証をかけることにしています。例えばコメントフォームに登録ユーザーと同じ名前でコメントする場合,memberのパスにリダイレクトしてから処理する予定です。

認証にはHtpasswdプラグインを使います(こちらこちらを参照)。ダイジェスト認証も使えるからです。

このプラグイン,コントローラ単位で認証をかける仕様になっています。気持ちとしてはメソッドで認証の必要があるかどうかを判定して認証するようにしたかったのですが,試した範囲では難しそう。しょうがないので,membersのコントローラだけ認証をかけるようにして,認証に通ったらrender_componentを使って他のコントローラに制御を引き渡して描画させるようにしました。こうするとコントローラの中でパラメータを判定して引き渡し先を選ばないといけないのでDRYの原則から大きくはずれてしまうのですが,ほかにうまい方法が見つかっていないので,現状はそうしています。

まだ今のmemberテーブルの内容とどうすり合わせるか,決めていませんが,基本的に上記の枠組みで動くことは確認できました。

PS. 思いつきですが,認証後にその情報をセッションに入れてmemberなしのパスにリダイレクトするといった方法もあるかもしれません。セッション・ハイジャックなどの危険性がやや気になるところではありますが,DRYにはなります。


15 Feb, 2008 | Foodyn ( 実装メモ ) | | Andy
« Prev item - Next Item »
---------------------------------------------

Comments


No comments yet. You can be the first!


Leave comment

© 2007 yoursite.com | Designed by DesignsByDarren
Ported to Nucleus CMS: Suvoroff