https://test-m.gelonghui.com/debug 这个 debug 页面每次请求都会尝试设置 cookie ,别的浏览器都生效,但是我手机的微信浏览器每次都不行。 User Agent: Mozilla/5.0 (Linux; Android 15; 23116PN5BC Build/AQ3A.240627.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.102 Mobile Safari/537.36 XWEB/1300073 MMWEBSDK/20241101 MMWEBID/4628 MicroMessenger/8.0.54.2760(0x28003639) WeChat/arm64 Weixin NetType/WIFI Language/en ABI/arm64 [图片]
微信安卓客户端访问https协议网站,服务端api请求不能通过cookie获取登录状态你好,微信安卓客户端访问https协议网站,通过vconsole日志可以看到客户端有cookie信息,但是服务端api请求不能通过cookie获取登录状态,设备信息如下Mozilla/5.0 (Linux; Android 12; Redmi K30 5G Build/SKQ1.211006.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.102 Mobile Safari/537.36 XWEB/1300073 MMWEBSDK/20240802,微信版本 8.0.53 ,微信号 lgsimi [图片][图片] 麻烦帮忙看看,谢谢! 以上问题在http下是正常的
11-27//index.js //获取应用实例 const app = getApp() const jssha1 = require("../../miniprogram_npm/miniprogram_npm/js-sha1/index.js") Page({ data: { motto: 'Hello World', userInfo: {}, hasUserInfo: false, canIUse: wx.canIUse('button.open-type.getUserInfo') }, // 綁定點擊事件 bindHi() { // 登錄 wx.login({ success(sr) { // 獲取加密數據 wx.getUserInfo({ success(rres){ const code = sr.code; const timestamp = ~~(+new Date() / 1000); const sign = jssha1(`${timestamp}${code}wxxxxxxxxxxxxxx9ee417aa35ad230`); // 我們系統的接口Set-cookie了兩次 wx.request({ url: 'https://api.xxx.com/we-chat/mini-program/session', method: "POST", header:{ platform: "xxxx" }, data: { code, sign, timestamp, iv:rres.iv, encryptedData: rres.encryptedData }, success(r){ console.log(r.header['Set-Cookie']) } },) } }) } }) }, //事件处理函数 bindViewTap: function() { wx.navigateTo({ url: '../logs/logs' }) }, onLoad: function () { if (app.globalData.userInfo) { this.setData({ userInfo: app.globalData.userInfo, hasUserInfo: true }) } else if (this.data.canIUse){ // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 // 所以此处加入 callback 以防止这种情况 app.userInfoReadyCallback = res => { this.setData({ userInfo: res.userInfo, hasUserInfo: true }) } } else { // 在没有 open-type=getUserInfo 版本的兼容处理 wx.getUserInfo({ success: res => { app.globalData.userInfo = res.userInfo this.setData({ userInfo: res.userInfo, hasUserInfo: true }) } }) } }, getUserInfo: function(e) { console.log(e) app.globalData.userInfo = e.detail.userInfo this.setData({ userInfo: e.detail.userInfo, hasUserInfo: true }) }, })
wx.request请求服务器, 如果服务端下发多个Set-Cookie会导致cookie错误https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html 这是服务端下发的Response [图片] wx.request 返回的 response.header['Set-Cookie']结果如下 JSESSIONID=6D9A6F819C765192BB22224EFF383891; Path=/api; HttpOnly,user_token=637780ebdbaf677625a1c061833a965fdd366431219fae14ce3xxxxxxf8d5; Domain=.gelonghui.com; Expires=Sat, 20-Mar-2021 17:40:45 GMT; Path=/ 如果用Nodejs常用的cookie模块解析如下 [图片] user_token 变成了HttpOnly,user_token
2020-03-21