2013-11-15 112 views
0

我想为我的应用程序创建一个'Coming Soon'登录页面。这是一个功能齐全的应用程序,但是当我们处于测试阶段时,我想在登录页面输入密码来控制访问,而我们仍在测试。一旦有人在着陆页上输入正确的密码,他们就可以访问该应用程序。注意:此着陆页密码与用户帐户密码不同。Rails登陆页面密码验证

这是我在 “landing_password.html.erb” 观点:

<%= simple_form_for :landing, html: { class: 'form-horizontal'} do |f| %> 
    <%= f.input :text %> 
    <%= f.button :submit, "Sign In" %> 
<% end %> 

这里是我的pages_controller:

def landing 
testpassword = 'test' 
if params[:landing][:password] == testpassword 
    redirect_to home_path 
end 

但是,当密码是 '正确的' ,这意味着当我输入'test'时,它不会完成重定向到主路径。任何人都知道为什么它不起作用?

+2

请记住,人们可以通过猜测正确的url跳过您的身份验证。一旦用户登录成功,更安全的方法就是向会话添加布尔字段。然后在你的ApplicationController的'before_filter'中检查是否存在这个字段。如果它是零,则重定向到您的着陆页。干杯。 – nTraum

+0

'不完成重定向到主路径'究竟意味着什么?你是否显示错误/异常?如果不是,会发生什么呢? – nTraum

+0

这意味着它不会重定向到主路径,它只会停留在同一页面上。关于before_filter好点...我会尝试! – andrewcockerham

回答

1

看起来好像你在表单定义中有一个错字;您使用:text,但不应该是:password

<%= simple_form_for :landing, html: { class: 'form-horizontal'} do |f| %> 
    <%= f.input :password, label: "Please enter your password" %> 
    <%= f.button :submit, "Sign In" %> 
<% end %>