自己页面上的 KeystoneJS CSRF
KeystoneJS CSRF on own pages
我正在寻找一种简单的方法来设置 CSRF 令牌并在每个 POST/PUT/... 请求时检查它。
AdminUI 中已有一种机制。可以在 "normal" 网页上使用吗?
我知道 keystone.security.csrf.middleware.init
和 keystone.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);
我正在寻找一种简单的方法来设置 CSRF 令牌并在每个 POST/PUT/... 请求时检查它。
AdminUI 中已有一种机制。可以在 "normal" 网页上使用吗?
我知道 keystone.security.csrf.middleware.init
和 keystone.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);