1. 修改配置文件
// config.default.js config.session = { ... sameSite: "none", secure: true, }; config.cors = { origin: "xxx", credentials: true, allowMethods: "GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS", }; config.security = { csrf: { enable: false, }, domainWhiteList: ["*"], };
2. 此时在 https 上是没有问题的,若是 http 会报错:Cannot send secure cookie over unencrypted connection。若想本地调试通过,有以下两种方案:
方案一:中间件
手动设置 ctx.cookies.secure = true;
方案二:开启前置代理模式
配置文件加上下面配置:
// config.default.js ... config.proxy = true; ...
看下 koa 的代码:
配置了 proxy 后,会通过请求头 X-Forwarded-Proto 获取,
这时可以在客户端配置请求头:headers['X-Forwarded-Proto'] = 'https'
当然这两种方案都是不安全的,请根据个人情况甄别使用。