2013-11-15 3 views
0

내 앱의 '출시 예정'방문 페이지를 만들고 싶습니다. 완전한 기능을 갖춘 앱이지만 베타 버전 인 동안 테스트를 진행하는 동안 액세스를 제어하는 ​​비밀번호가있는 방문 페이지를 원합니다. 누군가 방문 페이지에 올바른 비밀번호를 입력하면 앱에 액세스 할 수 있습니다. 참고 :이 방문 페이지 비밀번호는 사용자 계정 비밀번호와 다릅니다.레일 방문 페이지 비밀번호 인증

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

하지만 암호가있을 때 '올바른': 여기

는 "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입니다 즉, '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 %>