2013-07-11 3 views
0

없이 URL에 액세스 -직접 내가이 일을 고려하고 로그인

모든 URL을 그러나 당신이 페이지의 링크 중 하나를 클릭하면 서명 된 않고 직접 액세스 할 수 있습니다 (I 특별히 허용하는 excecpt) 그것은 가입 페이지로 리디렉션됩니다

내가 그 일을 몇 가지 방법을 생각하고,하지만 둘 궁리와 함께 작동 할만큼 유연하지

  1. I가 사용하는 새로운 link_to_not_registered 도우미 만들기 every link_to 및 사용자가 로그인했는지 여부를 확인합니다.

  2. before_filter를 만들어 사용자가 로그인했는지 확인합니다. 링크 할 때만 필터를 만드는 방법을 모르겠으므로 문제가됩니다. 페이지에 직접 액세스 할 때

  3. 사용자가 로그인했는지 테스트하고 이에 따라 페이지를 변경할 외부 플래그가 있어야합니다.

도 방법은

Is there a way to create a functionality of direct access to show actions while clicking on links requires login? 
+0

하나의 옵션 스프링 로그인 절차에 사용자를 리디렉션, request.referrer으로 이전 페이지를 확인하실 수 있습니다 가입 페이지로 리디렉션하십시오. 나는 link_to를 대체 할 것을 권하지 않습니다. 또한 리퍼러가 응용 프로그램에 있음을 보장하면 'before_filter' 아이디어가 작동합니다. –

+0

이 상황에서 세션 변수는 어떻게 도움이됩니까? 그 존재를 확인하세요? –

+0

이 문제는 추론에 달려 있습니다. 손님이 사이트에 대한 제한된 액세스 권한을 부여 할 수 있습니까? 그렇다면 세션 변수가 작동 할 수 있습니다. 사용자가 가입을 요청하기 전에 페이지 뷰 제한이있는 티커를 가질 수도 있습니다. –

답변

0

나는 생각한다 (플래그는 너무 간단하다, 새로운 도우미 링크 가입 필터가 너무 복잡되기 전에) 로그인/가입 후 나 사용자를 리디렉션하는 데 도움이 가장 좋은 방법은 before_filter입니다. , 사용자가 다른 페이지에 액세스하려고하면, 세션 변수를 설정 :이 앱 내부의 페이지입니다, 그래서 만약 당신이 마음에 경로를

def to_signin 
    redirect_to singin_path if request.referrer["http://myapp.com"] 
end 
관련 문제