2012-04-29 3 views
0

Devise를 사용하여 내 레일 앱에서 사용자를 인증합니다. 인증 된 사용자 만 액세스 할 수있는 몇 가지 리소스가 있습니다. 인증되지 않은 사용자가 이러한 리소스에 액세스하려고하면 로그인 페이지로 돌아가겠습니다.Rails, Devise : 익명 사용자가 페이지에 액세스하려고 시도하면 페이지에 로그인하도록 리디렉션합니다.

이 작업을 수행하는 가장 좋은 방법은 무엇일까요?

  • 내가 application_controller.rb에 체크를 추가 할 수 있습니다 - 페이지, 그러나 나는이 검사를 추가하는 경우, 그것은 또한 기호에 적용 할 수있는, 그리고 우리는 루프에 들어가기 때문에 : 나는 생각했다. (로그인 페이지에 로그인 -> 로그인하지 않은 사용자 -> 로그인 페이지로 리디렉션 ...)

  • 모든 컨트롤러 메소드의 맨 위에 속성을 추가하십시오. @authenticated.

답변

1

authenticate_user! 필터에 대해 읽었습니까? 문서는 github ("컨트롤러 필터 및 도우미"로 검색)에서 찾을 수 있습니다.

관련 컨트롤러에서와 같이 추가하십시오. 추가 매개 변수로 :only => [ :show ] 또는 :except => [ :index ]을 제공하여 특정 작업으로 제한 할 수 있습니다.

+0

괜찮 았습니다. 거의 그 일을했습니다. 그러나 이렇게하면 사용자가/user/sign_in으로 리디렉션됩니다. 인증되지 않은 경우 사용자가 리디렉션되는 위치를 어떻게 개인 설정할 수 있습니까? – Karan

+0

"경로 구성"장은 몇 가지 지침을 제공합니다. 그렇지 않다면 위키의 위키를 보아라, 나는 정말로 그런 문제를 잘 다룰 것이라고 생각한다. – Femaref

+0

나는 다음을 시도했다 : https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-when-the-user-can-not-be-authenticated 그러나 나는 여전히 "초기화되지 않은 상수 CustomFailure"를 얻습니다. 내가 잘못하고있는 것을 볼 수 없다. – Karan

관련 문제