セッションには有効期限を設定することができます。有効期限が経過したセッションでアクセスすると、例外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