1

継承したコードに基づいて、ログインのオプションを記憶するように実装しようとしています。

私は以下を持っています:

def login 
if request.post?
  if params[:remember_me]
    # this is where user checked the remember me box
    cookies[:login] = { :value => "XJ12", :expires => Time.now + 120}
  end

    session_user = User.authenticate(params[:user][:email], params[:user][:password])   
    if session_user

      session[:user] = session_user.id
      @user=User.find(session[:user])
      @user.update_attributes(:last_login_time => Time.now(),:is_logged => true)
      @user.save
      flash[:message]  = "Login successful."
      redirect_to "/admin"
    else
      flash[:warning] = "Your email or password is incorrect. Please re-enter."
    end
  end
end

終わり

何をしても、Cookie は自動的に設定されます (EXPIRES: セッション)。ユーザーが私を記憶するオプションを選択しなかった場合、Cookieを10分間設定したいと思います。彼が私を覚えていることを選択した場合、私はそれをより長い時間設定します. 何をすべきかについてのガイダンスを得ることができますか?

4

1 に答える 1

2

まず、Time.now + 120は今からわずか2分なので、後の値に設定する必要があります。

次に、ここにあなたの流れがあります:

  1. ユーザーを取得しようとするときは、Cookieが設定されているかどうかを確認してください(Cookieはクライアント側で変更できるため、ユーザーごとに一意のランダムな文字列を作成することをお勧めします)
  2. Cookieが設定されている場合は、対応するユーザーをログに記録します
  3. そうでない場合は、セッションからの基本ログを試してください
  4. 接続時に、ユーザーがチェックボックスをオンにした場合はCookieを登録します
于 2013-02-15T08:39:31.210 に答える