セッションには有効期限を設定することができます。有効期限が経過したセッションでアクセスすると、例外SessionTimeoutErrorを発生します。
有効期限はCKApplication#timeout属性に秒数で指定します。セッションに最後にアクセスした時間からtimeout秒後がタイムアウトになります。セッションを無期限に有効にしたい場合は、timeout属性に0を設定してください。また、指定されたセッションIDが存在しない場合もタイムアウト扱いになります。
ユーザーのブラウザとIPアドレスで認証を行うことができます。セッション生成時と異なるブラウザやIPアドレスでセッションにアクセスすると、例外SessionAuthorizationErrorを発生します。
認証方法は以下の属性で設定します。trueのとき有効になります。
属性 | デフォルト | 説明 |
---|---|---|
auth_by_user_agent |
false |
ブラウザによる認証を行う。 |
auth_by_remote_addr |
false |
IPアドレスによる認証を行う。 |
認証エラー時に処理を行うにはCKApplication#handle_session_errorをオーバーライドし、表示したいコンポーネントを返してください。このメソッドはセッションの例外処理のためのフックメソッドで、タイムアウトかブラウザ・IPによる認証エラーが発生したときに実行されます。
class CKApplication def handle_error( error ) if error.class == CKSession::SessionTimeoutError then # ... code for timeout elsif error.class == CKSession::SessionAuthorizationError then # ... code for authorizaion error end error_page = page @error_page error_page.error = error error_page.debug = @debug error_page end end