2014-04-16 2 views
0

나는 각 행 (사용자)에 ID, 사용자 이름 및 암호가있는 모델 "사용자"가있는 간단한 레일 응용 프로그램을 가지고 있습니다.간단한 레일 로그인 시스템

나는 사용자가 사용자 이름과 암호를 삽입하도록하려는 "로그인"페이지에 대한 견해를 가지고 있으며 이러한 조합에 대해 데이터베이스에 일치하는 항목이 있는지 확인하는 코드로 전달하려고합니다 . 그렇다면 사용자를 위해 세션을 초기화하고 싶습니다.

또한 세션이 설정되었는지 여부에 따라 특정 페이지에 대한 액세스를 제한하고 싶습니다. (예 : 사용자가 로그인했습니다)

이제는 PHP에 익숙해 져서 어떤 PHP 페이지에 "action"을 설정하면됩니다. 서버에 값을 입력 한 다음 데이터베이스에 쿼리에 삽입합니다. 리턴 된 행 수가 0보다 큰 경우, 사용자는 인증됩니다.

레일에 간단한 방법과 비슷한 기능이 있습니까?

내가 PHP의 방법에 대해 알고하지 않습니다 감사합니다 :)

답변

1

아직 덧글을 남길 수있는 충분한 명성을 가지고 있지 않지만, 나는 완전히 테츠의 대답에 동의합니다.

더 자세히 설명하기 위해 Devise는 Ruby on Rails에서 사용자 인증을 구현하는 최상의 방법입니다. 당신은 당신 자신의 인증을 만드는 것에 대해 가고 싶지 않고 패스워드와 이것 저것을 암호화하는 것에 대해 걱정해야한다. 날 믿어, 기차 사고 야. Devise는 지속적으로 업데이트되어 Rails가 제공하는 가장 안전한 솔루션을 제공합니다. gem 'devise', '~> 3.2.4'

시계 고안에이 RailsCast :

당신의 Gemfile에

당신이 모든 설정했는지 후 http://railscasts.com/episodes/209-introducing-devise

, 당신은 조건부로 사용자가 로그인되어 있는지 여부에 따라 페이지를로드 할 수 있습니다 (또는 그 또는 그녀를 방향 전환). 다음은 그 예입니다.

<% if user_signed_in? %> 
    Signed in as <%= current_user.email %>. Not you? 
    <%= link_to "Sign out", destroy_user_session_path, :method => :delete %> 
<% else %> 
    <%= link_to "Sign up", new_user_registration_path %> or <%= link_to "Sign in", new_user_session_path %> 
<% end %>