自己页面上的 KeystoneJS CSRF

KeystoneJS CSRF on own pages

我正在寻找一种简单的方法来设置 CSRF 令牌并在每个 POST/PUT/... 请求时检查它。

AdminUI 中已有一种机制。可以在 "normal" 网页上使用吗?

我知道 keystone.security.csrf.middleware.initkeystone.security.csrf.middleware.validate 函数。但是打电话给他们的最佳地点在哪里?

非常感谢! 丹尼尔

编辑: 我试过使用

keystone.pre('routes', keystone.security.csrf.middleware.init); keystone.pre('routes', keystone.security.csrf.middleware.validate);

在我的路线文件中。令牌设置在我的 cookie 中。当我请求服务器时,cookie 也会被传输。 但是验证方法告诉我:"mismatch token"。也许我有一个概念上的误解。我想,这会开箱即用。我错过了什么?

编辑2: 我会将令牌添加到我的表单中。我错过了这一步...

你可以把它当作一个普通的中间件来调用,只需要在你的routes/index.js文件中定义它:

keystone.pre('routes', keystone.security.csrf.middleware.init);