2009-03-08 5 views
5

레일즈 앱에 로그인 페이지가 있습니다. 그 사람이 로그인 한 후 내 앱이 로그인 한 사람을 계속 추적하는 가장 좋은 방법은 무엇입니까? 예를 들어, 사용자가 다른 페이지로 이동하면 내 컨트롤러/작업은 계속 지나가는 한 해당 사용자를 추적하지 않습니다. 나중에 사용자가 방문하는 각 페이지 사이의 변수. 이 작업을 수행하는 더 좋은 방법이 있습니까? 변수 sessions을 사용해야합니까?레일 : 사용자 ID 추적

답변

7

예, 세션이 원하는 내용입니다.

@current_user = User.find(session["user_id]") 
+0

염두에 두어야 할 몇 가지 훌륭한 보석이 있습니다 레일 2.1+에서이 데이터를 변경하여 로그인 한 사람을 전환 할 수 있습니다. – Tilendor

+2

실제로 쿠키에는 사용자를 기반으로 한 SHA512 지문이 있습니다 응용 프로그램의 비밀 키로 데이터를 변경하지 않아도됩니다. 즉, 클라이언트 측에서 쿠키 내용을 사용할 수 있으므로 서버 측 저장소로 변경하지 않는 한 민감한 데이터 (암호 등)를 저장하지 않아야합니다. – Palm

4

이 강하게이 관리하는 플러그인을 고려

session["user_id"] = user_id 

그리고

다른 페이지에 현재 사용자 (모델이 호출하면 사용자)를 가져올 수 있습니다.

restful authentication과 같은 몇 가지가 있습니다.

이것은 current_userlogged_in? 기능을 제공합니다.