2013-11-15 104 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 %>