【问题标题】:Custom CSRF Error Message on SailsJSSailsJS 上的自定义 CSRF 错误消息
【发布时间】:2014-05-13 00:35:59
【问题描述】:

我正在使用 Sails 0.9.8 来支持一个小型电子商务网站。目前,我的会话在 30 分钟后过期。当用户将站点打开的时间超过该时间时(可能在后台),他们在提交时会收到预期的禁止错误,这会吐出节点堆栈错误(csrf 已过期)。虽然这对开发人员友好,但我更愿意向他们展示一些自定义错误页面,甚至刷新页面。

对于 v0.9.8 是否有任何解决方案,或者升级到 v0.10 是否更容易?

【问题讨论】:

    标签: node.js sails.js


    【解决方案1】:

    你可以在 v9 中做到这一点,尽管它有点不明显。诀窍是将默认的 500 错误处理程序(作为后备 Express 中间件包含在 Sails 中)变成真正的 Express 错误处理程序。为此,只需将应用程序的 config/500.js 文件中的函数签名更改为:

    function serverErrorOccurred(errors, req, res)
    

    function serverErrorOccurred(errors, req, res, next)
    

    Express 将任何具有四个参数的中间件解释为错误处理程序,因此当 CSRF 代码传递其错误时,此方法将运行。现在,由您在 serverErrorOccurred 方法中确定错误是否来自缺少的 CSRF 令牌;我首先检查errors.status 以查看它是403,然后检查req.urlreq.method 以确定用户试图做什么。玩得开心!

    【讨论】:

      猜你喜欢
      • 2011-02-04
      • 2017-10-02
      • 2013-09-09
      • 1970-01-01
      • 2016-09-03
      • 2021-09-12
      • 1970-01-01
      • 2015-09-21
      • 2011-04-27
      相关资源
      最近更新 更多