这是一段非常标准的代码(Rails 4):
<%= link_to 'Log out', logout_path, :method => :delete %>
但是,这里有一个非标准的考虑:没有 Javascript。如果没有 Javascript,jquery_ujs 就没有钩子,所以链接创建了一个GET /logout
没有路由的 plain 。
为什么?因为我想支持该站点的 Tor 隐藏站点版本,并且我必须假设 Tor 用户(很可能通过 Tor Browser Bundle 来)将禁用 JavaScript。(我故意不想为他们启用 JS,以防止各种潜在的隐私泄露。我也不想允许 XSRF 攻击,例如允许某人使用 GET 注销我的用户,也不想让 UI 变得丑陋按钮。)
隐藏站点的功能比主站点低(例如,不接受通过 tor 付款),但登录/注销等一些基本功能确实应该可以正常工作。
支持这一点的最佳方式是什么?