0

私のRailsアプリでは、次のsessions_helperようなものがあります:

def sign_in(user)
  token = User.generate_token
  if params[:remember_me]
    cookies.permanent[:remember_token] = token
  else
    cookies[:remember_token] = token
  end
  self.current_user = user
end

def sign_out
  cookies.delete(:remember_token)   
  self.current_user = nil
end

ここで、セキュリティ上の理由から、たとえば 30 分間非アクティブなユーザーを自動的にサインアウトすると便利です。

Railsでこれを達成する最良の方法は何ですか?

ユーザーがアプリケーション内で何かを行うたびに、ユーザーの Cookie の有効期間をさらに 30 分延長するprepend_before_filterin myを使用することを考えていました。ApplicationController

しかし、このアプローチはセキュリティの観点から推奨されますか?

ご意見ありがとうございます。

4

1 に答える 1

0

私も同様の方法を使用していますが、Cookie ではなくセッションを使用しています。アプリケーションコントローラーに「認証」アクションがあり、各コントローラーの before_filter によってトリガーされます。このアクションは「session[:accesses]」を突き出して 1 を追加し、データベースの「updated_at」列を更新します。次に、20 分間更新されていないセッションをデータベースから削除する cron ジョブがあります。

于 2013-08-17T12:31:41.227 に答える