http调用http接口
服务端:
this.ctx.response.set('set-cookie', 'test-cookie1=111; path=/;');
只需要满足跨域、请求带上credentials: 'include'就能正常写入cookie(没有感叹号就表示成功):

https调用https接口
同上,服务端:
this.ctx.response.set('set-cookie', 'test-cookie1=111; path=/;');
只需要满足跨域、请求带上credentials: 'include'就能正常写入cookie。

http调用https接口
如果还是上述服务端代码,写入会不成功,提示要指定sameSite:

修改后服务端:
this.ctx.response.set('set-cookie', 'test-cookie2=222; path=/; samesite=None; secure;');
写入成功:

总结
- protocol相同,无需主动指定sameSite,只要保证跨域没问题就可以写入cookie成功;
- protocol不相同需要主动设置sameSite+Secure;
