我正在寻找设置CSRF令牌并在每个POST / PUT / ...请求中检查它的简便方法。

AdminUI中已经存在一种机制。可以在“正常”网页上使用吗?

我知道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。
但是validate方法告诉我:“不匹配令牌”。也许我有一个概念上的误解。我认为这可以立即使用。我想念什么?

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

最佳答案

您可以将其称为常见的中间件,只需在routes / index.js文件中进行定义即可:

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

10-06 00:23