SimpleBoxes

Serene Bach セッション管理

Serene Bach では sb::Session というモジュールで、管理画面へのログインセッションを処理しています。

Serene Bach 3 での管理画面セッションの確認は、sb::App::Admin モジュールで行なっています。

Serene Bach におけるセッション処理のフロー自体はそれほど複雑ではありません。

[図] 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 が有効でない環境下では正しく動作しません。

関連記事
このエントリーをはてなブックマークに追加

スポンサーリンク

<< リノベーションは楽じゃない 総集編 - リビング・ダイニング :: 丸丸丸 >>