Powered by SmartDoc

認証

有効期限による認証

セッションには有効期限を設定することができます。有効期限が経過したセッションでアクセスすると、例外SessionTimeoutErrorを発生します。

有効期限はCKApplication#timeout属性に秒数で指定します。セッションに最後にアクセスした時間からtimeout秒後がタイムアウトになります。セッションを無期限に有効にしたい場合は、timeout属性に0を設定してください。また、指定されたセッションIDが存在しない場合もタイムアウト扱いになります。

ブラウザとIPアドレスによる認証

ユーザーのブラウザとIPアドレスで認証を行うことができます。セッション生成時と異なるブラウザやIPアドレスでセッションにアクセスすると、例外SessionAuthorizationErrorを発生します。

認証方法は以下の属性で設定します。trueのとき有効になります。

セッションの認証方法(CKApplicationクラス)
属性 デフォルト 説明
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