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'

 

当然这两种方案都是不安全的,请根据个人情况甄别使用。

 
 
 
 
posted on 2024-08-07 00:12  W1N9s  阅读(6)  评论(0编辑  收藏  举报