2009-03-08 42 views
5

Trong ứng dụng Rails của tôi, tôi có một trang đăng nhập. Sau khi người đó đăng nhập, cách tốt nhất để ứng dụng của tôi tiếp tục theo dõi người đã đăng nhập. Ví dụ: nếu người dùng chuyển sang các trang khác, bộ điều khiển/hành động của tôi sẽ mất dấu người dùng đó trừ khi tôi tiếp tục chuyển thay đổi giữa mỗi trang mà người dùng truy cập sau đó. Có cách nào tốt hơn để làm điều này? Tôi có nên sử dụng biến số sessions không?Đường ray: theo dõi ID của người dùng

Trả lời

7

Có, phiên là chính xác những gì bạn đang tìm kiếm.

session["user_id"] = user_id 

Và để lấy người dùng hiện trên một trang khác (nếu mô hình của bạn được gọi là thành viên):

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

Hãy ghi nhớ rằng nếu bạn đang sử dụng phiên Cookie dựa, đó là mặc định Tôi nghĩ rằng trong ray 2.1+ rằng dữ liệu này có thể được thay đổi để chuyển đổi ai đã đăng nhập. – Tilendor

+2

Thực ra cookie có một dấu vân tay SHA512 dựa trên bạn Khóa bí mật của ứng dụng r đảm bảo không làm xáo trộn dữ liệu. Tuy nhiên, điều này có nghĩa là nội dung cookie có sẵn ở phía máy khách, do đó bạn nên tránh lưu trữ dữ liệu nhạy cảm (mật khẩu, v.v.) trừ khi bạn chuyển sang một kho lưu trữ phía máy chủ. – Palm

4

mạnh xem xét một plugin để quản lý này.

Có một số, chẳng hạn như restful authentication.

Tính năng này cung cấp chức năng current_userlogged_in?.

Các vấn đề liên quan