Rails 3,Authlogic,NGINX和HTTP基本authentication不能很好地结合在一起

我正在使用Rails 3构build应用程序的早期阶段。用户身份validation由Authlogic提供支持,我已经按照标准进行了设置( 按照示例文档 ),并且所有事情都按照预期在本地进行。

我刚刚部署了应用程序到Centos 5.4 / NginX / Passenger干净的服务器安装,所以工作人员可以开始login和input内容等,但是,我们距离这个准备好公众的眼睛很远,所以我用NginX的基本身份validation模块,以保持整个网站的身份validation的另一个级别。

不幸的是,Authlogic的身份validation和NginX的基本身份validation似乎是相互冲突的。 如果基本身份validation打开,那么使用Authlogiclogin是不可能的,但如果我禁用基本身份validation,则Authlogic按预期工作。

我还没有发布任何代码,因为我真的不知道什么代码将是相关的。 我想知道这是不是一个已知的问题,如果我可以对configuration做任何改变来解决这个问题?

我可以回答我自己的问题(几个小时后,完全看错了地方)。 Authlogic::Session::Config上的一个很好的Authlogic::Session::Config做了窍门。

 class UserSession < Authlogic::Session::Base allow_http_basic_auth false end 

我还没有尝试Rails 3,所以我的答案会更一般。 而我不知道Nginx的基本认证模块。

  1. 如果您的团队已连接到本地,则只能创建可从本地网络访问的服务器。
  2. 如果您需要通过Internet访问,则可以将其隐藏在VPN后面。
  3. 您只能通过本地IP设置对网站的访问权限,并给任何需要它的人提供ssh访问权限。 通过ssh创建socks代理非常容易(在linux中:ssh -D 8080 user@yourserver.com;其中8080​​是端口号,然后在浏览器中设置socks代理,你可以午餐yoursever.com:3000)。
  4. 我认为NginX允许你设置允许的IP并拒绝其他IP地址,所以你也可以使用它来限制访问。
  5. 而且你也可以临时添加到ApplicationController before_filter :require_login :),所以只有登录页面才能被使用到世界上。

希望能帮助到你!