当前位置:   article > 正文

Uni-app微信小程序跨域set-cookie_uniapp设置cookie值

uniapp设置cookie值
今天在搞小程序验证时想把jwt token验证换成cookie验证,却碰到了一个问题,小程序跨域不支持保存cookie。

可以看到响应头中set-cookie出现警告,并提示

This Set-Cookie was blocked because it had the "SameSite=Lax" attribute but come from a cross-site response which was not the response to a top-level navigation

告诉我们cookie因为跨域设置失败了。。

看了一下uniapp的官方文档uni.request(OBJECT) | uni-app官网

发现小程序并不支持set-cookie。

  • 注意小程序端不支持自动保持 cookie,服务器应避免验证 cookie。如果服务器无法修改,也可以使用一些模拟手段,比如这样的工具https://github.com/charleslo1/weapp-cookie 可以请求时带上 cookie 并将响应的 cookie 保存在本地。
至此官方已经给了我们解决办法,就是通过weapp-cookie重写request请求。

weapp-cookie使用也非常简单

  1. npm install weapp-cookie --save
  2. # 将 npm 包复制到 vendor 文件夹,避免小程序可能不能找到文件(Tips:支持npm包的开发环境无需此步)
  3. cp -rf ./node_modules/ ./vendor/
  1. // app.js
  2. import './vendor/weapp-cookie/dist/weapp-cookie'
  3. // tips: 使用 uni-app/wepy/mpvue 等支持npm包的环境可以直接在入口 js 引入 weapp-cookie 模块
  4. // import 'weapp-cookie'
  5. App({
  6. onLaunch: function () { }
  7. // ...
  8. })

导入后不用设置任何东西,请求会自动带上cookie

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/209088
推荐阅读
相关标签
  

闽ICP备14008679号