在生产环境中添加http基本身份验证后,当前用户为nil

时间:2012-09-10 03:43:00

标签: ruby-on-rails ruby-on-rails-3.1 ruby-on-rails-3.2 authlogic

我已在我的应用程序中实现了http基本身份验证,在执行基本的http身份验证后,当前用户在生产模式下总是为零。粘贴在我的代码下面供您参考。

在应用程序控制器中:

def authenticate_user
  if (Rails.env.production? && current_user_session.nil?)
    authenticate_or_request_with_http_basic do |username, password|
      username == HTTP_AUTHENTICATION_USERNAME && password == HTTP_AUTHENTICATION_PASSWORD
    end
  end
end

从初始化文件获取HTTP凭据。

HTTP_AUTHENTICATION_USERNAME="xxxx"
HTTP_AUTHENTICATION_PASSWORD="yyy"

此外,我在用户会话模型中尝试了“allow_http_basic_auth false”,但它没有解决问题。

1 个答案:

答案 0 :(得分:0)

我认为问题可能是你的陈述

if (current_user_session.nil?)

根据我在此处找到的文档 - Authlogic documentation,即使对于匿名用户,current_user_session似乎也不会为零。

尝试使用:

if (current_user.nil?)