0

ログインするだけで永続的なCookieが作成される場合の私の記憶機能。次のチュートリアルに従いました: http://railscasts.com/episodes/274-remember-me-reset-password

ここに私が持っているもの

セッションコントローラー

class SessionsController < ApplicationController
  def new
    if current_customer
        redirect_to current_customer
    end
  end
  def create
    customer = Customer.find_by_email(params[:email])
        if customer && customer.authenticate(params[:password])
        if params[:remember_me]
        cookies.permanent[:auth_token] = customer.auth_token
        else
        cookies[:auth_token] = customer.auth_token
        end
            redirect_to customer, :notice => "Logged in!"
        else
            flash.now.alert = "Invalid email or password"
            render "new"
        end
  end

  def destroy
    cookies.delete(:auth_token)
    redirect_to root_url, :notice => "Logged out!"
  end
end

アプリケーションコントローラー

class ApplicationController < ActionController::Base
  protect_from_forgery

  force_ssl

  private

    def authorize
        redirect_to login_url, alert: "Not authorized" if current_customer.nil?
    end

    def current_customer
      @current_customer ||= Customer.find_by_auth_token(cookies[:auth_token]) if cookies[:auth_token]
    end
    helper_method :current_customer
end

他の Cookie が存在しないことを確認するために、params がオフになっていない場合は、削除を追加することを考えていました。しかし、それはうまくいかないようです

4

2 に答える 2

0

おそらく、クラスの先頭で helper_method 呼び出しを呼び出す必要があります。

于 2012-07-26T08:47:21.340 に答える
0

追加してみる

  reset_session

あなたの破壊アクションに。

于 2012-07-26T16:19:01.713 に答える