1

これは非常に標準的なコードです (Rails 4):

<%= link_to 'Log out', logout_path, :method => :delete %>

ただし、非標準の考慮事項があります。Javascript はありません。Javascript がないと、jquery_ujs はそのフックを取得しないため、リンクはGET /logoutルートを持たないプレーンな を作成します。

なんで?サイトの Tor 隠しサイト バージョンをサポートしたいので、Tor ユーザー (Tor Browser Bundle を介して来る可能性が最も高い) は JavaScript を無効にしていると想定しなければなりません。(さまざまな潜在的なプライバシー リークを防ぐために、故意に JS を有効にしたくありません。また、誰かが GET でユーザーをログアウトさせたり、UI を見苦しくしたりするような XSRF 攻撃も許可したくありません。ボタン。)

隠しサイトはメイン サイトよりも機能が低くなります (たとえば、tor 経由での支払いは受け付けません) が、ログイン/ログアウトなどのいくつかの基本的なことは正しく機能するはずです。

これをサポートする最善の方法は何ですか?

4

1 に答える 1

0

formフォーム ヘルパーを使用して を作成できるかもしれません。これにより、使用する を指定できますmethod。Rails が行うことは、HTTP メソッドを指定する隠しフィールドを内部に生成することです。このフィールドformは、送信時に Rails によって使用され、呼び出すコントローラー アクションが決定されます。

あとは、CSS を記述して送信ボタンをリンクのように見せるだけですが、これは Web 上で簡単に見つけることができます。

于 2013-07-24T01:42:18.567 に答える