- 多设备登录态如何维护?
我在开发中遇到了这样一个问题。 首先说说我的登录流程(我是参考这个很流行的教程https://segmentfault.com/a/1190000014234141设计的,后文概括了我的流程,和这个教程是一样的)。每次打开小程序,我会调用wx.getStorageSync查看是否本地保存了我的服务器维护的session key,如果没有就调用wx.login,如果有,就使用wx.checkSession判断session key是否过期,如果过期了,就调用wx.login,如果没有过期就使用本地保存的session key请求我的服务器其他API。下图是我的登录流程: [图片] 问题在于,设想这样一种情况,我有两台手机,第一台登录后调用wx.login生成一个session key,第二台手机再登录我的小程序,调用wx.login再次生成一个不同的session key。此时两台手机都在本地保存了一个互不相同的session key,并且一定时间内wx.checkSession会返回未过期。于是在这段时间内第一台手机将使用一个作废的session key来请求我的API。 请问大家是如何看待这个问题的?是否有解决的办法或建议呢?
2018-10-07 - 直接从小程序上传图片到COS
我想知道这是可能到吗?我一直得到报错“The body of your POST request is not well-formed multipart/form-data.” 我用一个云函数计算所需要到Auth,返还这个Auth给微信小程序后我想直接用wx.uploadFile上传图片到COS。以下是我实际的代码 [代码]wx.uploadFile({[代码] [代码] [代码][代码]url: [代码][代码]"https://bucketname-appid.cos.ap-guangzhou.myqcloud.com"[代码][代码],[代码] [代码] [代码][代码]filePath: [代码][代码]this[代码][代码].data.imgSrc, // 这个imgSrc看起来是这样的 http://tmp/wx06831dfa43ec02c8.tGEdCWwps.6OYqN...jHa01.jpg[代码] [代码] [代码][代码]name: [代码][代码]'file'[代码][代码],[代码] [代码] [代码][代码]header: {[代码] [代码] [代码][代码]'Authorization'[代码][代码]: resData.data, // 这里的data看起来是这样的 q-sign-algorithm=sha1&q-ak=AKIDK1a...&q-sign-time=1538223445;1538222464&q-key-time=1538223445;1538222464&q-header-list=&q-url-param-list=&q-signature=23b157...[代码] [代码] [代码][代码]"Content-Type"[代码][代码]: [代码][代码]"multipart/form-data"[代码][代码],[代码] [代码] [代码][代码]'Host'[代码][代码]: [代码][代码]"bucketname-appid.cos.ap-guangzhou.myqcloud.com"[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]success: [代码][代码]function[代码] [代码](uploadRes) {[代码] [代码] [代码][代码]console.log([代码][代码]'ssss::: '[代码][代码], uploadRes)[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]fail: [代码][代码]function[代码] [代码](e) {[代码] [代码] [代码][代码]console.log([代码][代码]'e'[代码][代码], e)[代码] [代码] [代码][代码]}[代码] [代码]});[代码]**我用“bucketname-appid"代替了真实的bucketname和appid 这段代码会运行success中的callback,console.log显示如下 data:"<?xml version='1.0' encoding='utf-8' ?>↵<Error>↵ <Code>MalformedPOSTRequest</Code>↵ <Message>The body of your POST request is not well-formed multipart/form-data.</Message>↵ <Resource>bucketname-appid.cos.ap-guangzhou.myqcloud.com</Resource>↵ <RequestId>NWJh....FiMTc=</RequestId>↵ <TraceId>OGVm...gzMzdjOTA=</TraceId>↵</Error>↵↵" errMsg:"uploadFile:ok" statusCode:400
2018-09-29