私は、一部のRailsで、一部がBackboneのWebアプリケーションを持っています。私が実装したコメントシステムのようなものは、ほとんどがクライアント側のJavascriptで書かれています。 RailsのバックエンドはJSONを前後に渡すことで永続性を処理します。クライアント側で現在のユーザーセッションを管理するにはどうすればよいですか?
サーバーからページをレンダリングするとき、誰が簡単であるかを把握することができます。
<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>
などと言うことができます。現在のユーザーがコメントの投稿者の場合は、特定のコメントを削除するリンクのみ表示されます。問題ない。
JavaScript templates(afaikにキャッシュされています)を使用してクライアント側でコメントを表示するようになりましたが、私はcurrent_user
にアクセスできません。私は、現在私のアプリを使っているユーザーがコメントの作者であるかどうかを知ることができないので、彼が見たいものを制御することはできません。
確かに、私はサーバーでも権限を与えているので、彼はコメントを削除することはできませんが、まず最初にリンクを表示しないでください。
どうすればこの問題を解決できますか?
私はこれが無数のブログでカバーされていたはずのトピックであるように思われるにもかかわらず、私は何かを見つけることができないため、このトピックのリソースへのリンクと回答が大好きです。
このアプローチは使用するのが保存されますか?ユーザーは現在のユーザーのIDを変更することができます – ecleel
ユーザーがIDを変更して削除を試行しても、サーバー側の保護がある場合は、401の不正なエラーが発生するので、安全です。削除ボタンを表示していないと表示しないのは、ユーザーの利便性であり、セキュリティではありません。 – AwDogsGo2Heaven