想用postman做接口测试,发现提示csrf错误信息,因为是数据服务接口,所以想关闭csrf机制,通过token校验合法性。
工程中的config.default.js 设置csrf:false,错误依旧,下载了egg_cors插件,配置好了错误依旧。
找到node_modules 下的 egg-security →config→config.default.js 找到csrf这个对象下的enable改为false,成功关闭csrf。
想用postman做接口测试,发现提示csrf错误信息,因为是数据服务接口,所以想关闭csrf机制,通过token校验合法性。
工程中的config.default.js 设置csrf:false,错误依旧,下载了egg_cors插件,配置好了错误依旧。
找到node_modules 下的 egg-security →config→config.default.js 找到csrf这个对象下的enable改为false,成功关闭csrf。
postman 其实你只要 url header 和 cookie 对得上就行了。
至于关不了,99.99% 的可能性是你配置错了,请提供最小可复现仓库。
1、初始化工程 $ egg-init egg-example --type=simple $ cd egg-example $ npm i 2、router中,增加一个post地址 3、用postman随便post数据到这个地址,显示csrf错误 4、config.default.js 关闭csrf校验 exports.security = { csrf: { enable: false, } }; postman提交数据还是显示csrf错误 5、找到node_modules 下的 egg-security →config→config.default.js 找到csrf这个对象下的enable改为false,成功关闭csrf。
指的是把你初始化好的可复现仓库提交到你的 github 仓库
用的是egg-init的例子,没什么代码和配置。
直接上传几分钟就搞定了,不用这样挤牙膏的交流。过去很多情况下,都是以为配置正确了。
估计是 config.default.js 配置文件有多个导出。
感谢fegmk2的提醒,我确认到问题。 1、之前的eggjs版本("egg": "^2.2.1",)可以这么写:
//关闭表单验证 exports.security = { csrf: false };
经过测试,最新版本("egg": "^2.15.1",)无法生效。
2、改成这个样子,最新版本("egg": "^2.15.1",)生效。
config.security = { csrf: { enable: false, } };
3、应该是版本升级,最新版本无法识别多个导出。
@zzzkkk2018 所以一直让你上传你的配置文件啊。
应该是版本升级,最新版本无法识别多个导出。
这个结论是错的,跟 Egg 没什么关系,你应该是对 Node 的 exports / module.exports 理解不够。
我猜测你的 config.default.js 长这样:
// config/config.default.js
module.exports = () => {
const config = {};
// 返回的是 config,你写到 exports 上,肯定有问题啦
exports.security = {};
return config;
}