2

ユーザーがAJAXを使用してリソースに投票できるようにしたいのですが、リソースのコントローラー内でcurrent_userのIDを取得する方法が正確にわかりません。

私は周りを検索し、user_idを非表示フィールドとして保存し、それを使用してAJAXリクエストを送信するための多くの提案を読みましたが、セキュリティの脆弱性にさらされることはありませんか?悪意のあるユーザーは、user_idを変更して、選択したランダムユーザーとして投票することができます。

AJAXリクエストのcurrent_userのIDを取得する標準的な方法は何ですか?

ありがとう

4

1 に答える 1

5

すべてが認証の背後にある場合は、user_idをビューに保存したり、それを渡すために労力を費やしたりする必要はありません。通常どおり、コントローラーでcurrent_user(または)にアクセスするだけです。current_user.id

「すべてが認証の背後にある」とは、投票するためのインターフェースを持つビューを持つコントローラーと、AJAXリクエストの宛先のコントローラーの両方が持つbefore_filter :authenticate_user!か、そうするクラスから派生する必要があることを意味します。この場合、deviseは、他のすべての認証済みリクエストの場合と同じ方法でユーザーを識別します。リクエストがJSONであるかどうかは問題ではありませんが、そのようなものがまだない場合は、ログインへのjavascriptリダイレクトを含めるために不正な動作を調整する必要がある場合があります。

于 2013-01-13T08:20:30.307 に答える