【发布时间】:2011-05-13 03:55:43
【问题描述】:
我正在使用我的 rails 3 应用程序设计。由于某种原因,使用“记住我”的登录功能无法正常工作。
这可能是由于在 localhost:3000 上进行的测试造成的吗?
在 devise.rb 中,我有以下设置:
config.remember_for = 2.weeks
在日志中,当我发布登录信息时,我看到:
Started POST "/users/sign_in" for 127.0.0.1 at Thu May 12 20:53:04 -0700 2011
Processing by SessionsController#create as HTML
Parameters: {"signIn"=>"LOG IN", "authenticity_token"=>"GR09TIq4uSbu6UWxDRhpfQeLWp7qtJTxkCFksLmFzdE=", "utf8"=>"✓", "user"=>{"remember_me"=>"on", "password"=>"[FILTERED]", "email"=>"xxxx@xxxxxxx-inc.com"}}
有什么问题吗?
我的 session_controller.rb 中也有以下内容
class SessionsController < Devise::SessionsController
prepend_before_filter :require_no_authentication, :only => [ :new, :create ]
include Devise::Controllers::InternalHelpers
# GET /resource/sign_in
def new
clean_up_passwords(build_resource)
render_with_scope :new
end
# POST /resource/sign_in
def create
resource = warden.authenticate!(:scope => resource_name, :recall => "new")
#set_flash_message :notice, :signed_in
sign_in_and_redirect(resource_name, resource)
end
# GET /resource/sign_out
def destroy
#set_flash_message :notice, :signed_out if signed_in?(resource_name)
sign_out_and_redirect(resource_name)
end
protected
def after_sign_in_path_for(resource)
if resource.is_a?(User) && resource.banned?
sign_out resource
flash[:error] = "This account has been suspended."
root_path
else
super
end
end
end
您知道为什么登录和记忆不起作用吗?谢谢
【问题讨论】:
-
当我关闭浏览器并返回 localhost:3000 url 时,我必须重新登录。我还看到 cookie 没有设置过期日期
标签: ruby-on-rails ruby-on-rails-3 devise