其他分享
首页 > 其他分享> > Koa+Session2+可写不可读(跨域)

Koa+Session2+可写不可读(跨域)

作者:互联网

【session2】组件:

安装命令:npm install koa-session2

GitHub地址:https://github.com/Secbone/koa-session2

具体使用方式,可见于GitHub地址下的readme.md文件。

注意事项:

基于koa的vue项目,在后端使用session时存在跨域问题,会造成 session配置正确但是读写失败的情况。无论是在浏览器读写还是在Redis,Mongodb读写session都会存在问题,最常见的就是session可写不可读的情况。

针对这种问题的排查方式是:

1.使用postman测试,检测访问对应接口时候,返回的结构体的Cookie是否有值,且和配置的一致。

2.postman访问不存在跨域问题,当返回结果无误时,则可排除配置问题。

3.使用程序访问时,在session的读(get函数)写(set函数)值处跟踪,看看能不能读到值,以排查此问题。

4.建议使用自定义的session存储,如redis。

解决方式:

1.当我们在发送跨域请求时,session是无法设置浏览器端的, ctx.session 也就获取不到值,

request 的 credentials属性表示是否允许其他域发送cookie,
该属性有3个值:
omit: 默认属性,不允许其他域发送cookie
same-origin: 只允许同域发送cookie
include: 总是允许发送cookie

服务端需要设置‘Access-Control-Allow-Credentials’:true

参考:https://www.cnblogs.com/QxkWeb/p/10021097.html(未测试)

 2.在前端程序中设置代理,我的项目是以Vue作为前端,则在Vue的配置文件vue.config.js中设置了proxy代理。

标签:session2,跨域,Session2,Koa,发送,koa,session,cookie
来源: https://blog.csdn.net/QiGary/article/details/116459611