Serene Bach セッション管理
- 2009.04.21 Tuesday
- dev
Serene Bach では sb::Session というモジュールで、管理画面へのログインセッションを処理しています。
Serene Bach 3 での管理画面セッションの確認は、sb::App::Admin モジュールで行なっています。
Serene Bach におけるセッション処理のフロー自体はそれほど複雑ではありません。
コードに直すと以下のようになります。
use sb::Session; # セッションオブジェクトの生成 my $session = sb::Session->new('key' => 'session_key'); if ( $session->check ) { # セッションが有効 my $extend = undef; # ... なんか処理を行なう ... if ( $extend ) { # セッションを延長 $session->start(); } else { # セッションを終了 $session->finish(); } } else { # セッションが期限切れ、もしくは未発行 my $login_success = undef; # ... パスワード確認処理 ... if ( $login_success ) { $session->start(); } }
sb::Session では、以下のメソッドを利用します。
- check
有効なセッションが発行済かどうかをチェックします。
- start
セッションを発行します。発行済の場合は再発行となり、セッション期限が延長されます。
- finish
セッションを破棄します。このメソッドを実行しなくても期限切れのセッションは自動的に破棄されます。
セッションオブジェクトを生成する際に、渡している key がセッション整合に利用されます。
具体的には、この key を利用して cookie の発行などを行なっています。sb::Session モジュールは cookie の利用を前提に動作しているので、cookie が有効でない環境下では正しく動作しません。
スポンサーリンク