Tôi có một ứng dụng web là một phần Rails và một phần Backbone. Một số thứ như hệ thống bình luận mà tôi đã triển khai được viết chủ yếu bằng Javascript ở phía máy khách. Phần cuối của Rails chỉ xử lý sự kiên trì bằng cách chuyển JSON qua lại.Làm cách nào để quản lý phiên người dùng hiện tại ở phía máy khách?
Khi tôi hiển thị các trang từ máy chủ, hãy xử lý những người được xem những gì dễ dàng. Tôi có thể nói những điều như
<li class="comment">
<span class="comment_text"><%= @comment.text %></span>
<% if user_signed_in? and current_user == @comment.author %>
<a class="delete" href="some delete url">Delete Comment</a>
<% end %>
</li>
Và đó sẽ chỉ làm cho liên kết để xóa một bình luận đặc biệt nếu người dùng hiện nay là tác giả của nhận xét. Không vấn đề gì.
Tuy nhiên, giờ tôi đang hiển thị nhận xét ở phía máy khách bằng cách sử dụng JavaScript templates (được lưu trong bộ nhớ cache afaik), tôi không có quyền truy cập vào current_user
. Tôi không thể biết liệu người dùng hiện đang sử dụng ứng dụng của tôi có phải là tác giả của nhận xét hay không vì vậy tôi không thể kiểm soát nội dung anh ta xem.
Chắc chắn, anh ấy sẽ không thể xóa nhận xét theo cách này vì tôi cũng cho phép trên máy chủ nhưng tôi không muốn hiển thị liên kết ở vị trí đầu tiên.
Tôi làm cách nào để thực hiện việc này?
Tôi muốn một số liên kết đến các tài nguyên về chủ đề này cũng như câu trả lời vì tôi dường như không tìm thấy bất kỳ điều gì, mặc dù có vẻ như đây là một chủ đề cần được đề cập trong vô số blog.
Phương pháp này có được lưu lại để sử dụng không? Người dùng có thể thay đổi id của người dùng hiện tại – ecleel
Nó an toàn để sử dụng, miễn là bạn cũng có bảo vệ phía máy chủ tại chỗ, để ngay cả khi Người dùng thay đổi ID và cố gắng nhấn xóa, anh ta sẽ nhận được lỗi trái phép 401. Hiển thị và không hiển thị nút xóa là thuận tiện cho người dùng, chứ không phải bảo mật. – AwDogsGo2Heaven