Node + Koa实现跨域(域名不同,端口不同)携带Cookies

509 阅读1分钟

Set-Cookie的domain设置的是服务器的域名。

在 Koa 中使用 session我这里使用的是Koa-session中间件。

Koa-session会根据请求的后端接口域名给cookie设定domain。

image.png

image.png

image.png

image.png

两种情况下的跨域

1. 域名相同,端口不同

此时可以使用http,客户端设置axios的withCredentials为true,服务端设置Access-Control-Allow-Credentials为true就好。

2. 域名不同,端口不同

此时除了情况1需要的配置外,还需要将Set-Cookie设置SameSite=None; Secure;Secure就必须是https。

image.png

webpack配置https

image.png

koa配置https

  1. 首先通过openssl生成证书(ssl.key 和 ssl.crt)

openssl生成ssl证书可参考如下文档: juejin.cn/post/705640…

  1. koa配置https服务

image.png 3. 修改koa-session的配置

image.png