小程序 + node koa2 session存储验证码碰到最大的坑,(喜极而泣 /狗头)
问题:session存验证码。本地拿postman测试了半天,都没有问题。 但到了小程序,服务端再获取(ctx.session.verifyCode)就一直提示不存在。undefined
小程序会话机制:微信小程序不能保存Cookie,导致每次wx.request到服务端都会创建一个新的会话,从而当前会话不再是之前存验证码的那个会话,自然也就取不到session值了。
node - session:用cookie传递,在response-header加上set-cookie
客观,不要着急。拿图看一下,
第一张图片是getVerifyImg 接口的response-header,大家可以看到的是有了set-cookie

接下来是验证的接口,上图片
大家可以看到,request-header中没有了cookie

解决办法是: 小程序端获取到session cookie的时候要使用storage 缓存起来,放在请求头上,
但是还没完,注意细节决定你得接口
node session中 GMT后面是用的 ; 拼接的
但是小程序中 是用 , 拼接的

所以再存储的时候,要转一下,本人正则比较拉,只会repalce ,莫嘲笑
console.log( res.header['Set-Cookie'])
wx.setStorageSync('cookie', res.header['Set-Cookie'].replace('GMT,', 'GMT;'))
然后放在request 中的header中就可以了
小程序 + node koa2 session存储验证码碰到最大的坑,(喜极而泣 /狗头)的更多相关文章
- 小程序接口无法传递session校验验证码
		今天在写接口的时候发现一个问题,我用apiaaz测试一切正常,但是从小程序接口请求验证码,一直验证失败. 最开始用的图形验证码,查阅了不少资料,最后怀疑是cookie的问题,解决无果,换成了短信验证码 ... 
- 微信小程序 (node) warning: possible EventEmitter memory leak detected
		小程序 (node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setM ... 
- 微信小程序 键盘显示短信验证码
		1.场景描述: IOS系统 一些APP或者微信小程序在收到短信验证码的时候会在键盘上自动保存验证码信息,当用户点击的时候,会自动赋值到当前所点击的输入框中 2.案例: 2.实现: TIPS:这个功能是 ... 
- H5本地存储技术和微信小程序中的本地存储
		1.H5的本地存储 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ... 
- 记录一次用宝塔部署微信小程序Node.js后端接口代码的详细过程
		一直忙着写毕设,上一次写博客还是元旦,大半年过去了.... 后面会不断分享各种新项目的源码与技术.欢迎关注一起学习哈! 记录一次部署微信小程序Node.js后端接口代码的详细过程,使用宝塔来部署. 我 ... 
- 小程序+node+mysql做的小项目
		git源码地址: https://github.com/songkangle/weixin_node 小程序页面 数据库 user表 dream表 node的express框架index.js var ... 
- 微信小程序如何发送短信验证码,无需搭建服务器
		自从微信小程序提供云开发支持,开发者无需搭建后台服务器,使用微信提供的核心API就可以实现应用功能,此时就需要小程序能够自己发送短信,比如短信验证码,榛子云短信(http://smsow.zhenzi ... 
- 微信小程序云开发-云存储的应用-识别身份证(正面和反面)
		一.准备工作 1.创建云函数identify 2.云函数identify中index.js代码 1 // 云函数入口文件 2 const cloud = require('wx-server-sdk' ... 
- thinkphp 把小程序码二进制流存储到本地
		public function getxcxm(){ $id = input('id'); $astk = json_decode($this->getasstk())->access_t ... 
- 关于小程序登录时获取openId和unionId走过的坑
		目前的项目是在做小程序这方面的,接触过的人应该都知道,同一个微信开放平台下的相同主体的App.公众号.小程序的unionid是相同的,这样就可以锁定是不是同一个用户.微信针对不同的用户在不同的应用下都 ... 
随机推荐
- SuperMap iManager云套件数据动态更新刷新地图与数据服务
			一.使用背景 有这么一个需求,后端也就通过SuperMap iDesktop或数据库更新了新增或更新某个数据地理信息后,云套件SuperMap iManager中的服务没有更新,无法实时查看到更新的数 ... 
- 【赵渝强老师】阿里云大数据ACP认证之阿里大数据产品体系
			阿里大数据产品体系是基于阿里云飞天平台上的数据处理服务.主要分为阿里云大数据基础产品和阿里云数加平台,其产品架构图如下所示: 一.阿里云大数据基础产品 1.云数据库--RDS(ApsaraDB for ... 
- Redis 发布订阅模式
			概述 Redis 的发布/订阅是一种消息通信模式:发送者(Pub)向频道(Channel)发送消息,订阅者(Sub)接收频道上的消息.Redis 客户端可以订阅任意数量的频道,发送者也可以向任意频道发 ... 
- 手写 p-map(控制并发数以及迭代处理 promise 的库)
			介绍 p-map 是一个迭代处理 promise 并且能控制 promise 执行并发数的库.作者是 sindresorhus,他还创建了许多关于 promise 的库 promise-fun,感兴趣 ... 
- wpf样式模板的使用
			<Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/200 ... 
- [Vue warn]: Error in v-on handler (Promise/async): "TypeError: Object(...) is not a function"
			引用外部发文件时候,只是部分引用,所以原本是解构方式引用的,我忘记加{ }了 
- 13 Multi-Head Self-Attention(从空间角度解释为什么做多头)
			博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ... 
- 云原生周刊:Kubernetes 十周年 | 2024.6.11
			开源项目推荐 Kubernetes Goat Kubernetes Goat 是一个故意设计成有漏洞的 Kubernetes 集群环境,旨在通过交互式实践场地来学习并练习 Kubernetes 安全性 ... 
- Games104 现代游戏引擎 Picoolo环境搭建 vulkan配置
			0 前言介绍 games104 现代游戏引擎课程是由 GAMES: Graphics And Mixed Environment Symposium 支持的一个课程. 如我们所视,Games并非的含义 ... 
- VueJS实现迷糊查询
			原文请查看公共号 前置条件: 开发环境:windows 开发框架:vue2.5 ,vue-cli 4.0+ 编辑器:HbuilderX 兼容版本:vue2.5 Chrome 99.0.4844 ... 
