- 小程序的后台定位设置选项没有[使用小程序期间和离开小程序后]?
startLocationUpdateBackground 基础库版本:2.10.1 微信版本:7.0.9 手机:小米5S 发给其他人体验同样 通一台手机两个微信,开发者的微信有该选项,另外一个微信没有该选项 [图片][图片]
2020-02-21 - 服务端数据安全
类似问题:https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=000e4676ff01c068de16ee13956000&highline=%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%AE%89%E5%85%A8 服务端提供数据api目前我差到可以通过发送用户的 signature和rawData 到服务端进行shd1进行签名对比,参考文档,https://developers.weixin.qq.com/miniprogram/dev/api/signature.html.目前已经实现 小程序代码中发送request 每次都需要在header里面加上相关数据发送到服务器.例如: [代码]wepy.request({[代码][代码] [代码][代码]url: [代码][代码]'http://localhost:64606/test/auth'[代码][代码],[代码][代码] [代码][代码]header: {[代码][代码] [代码][代码]auth_token: auth.token,[代码][代码] [代码][代码]auth_signature: authInfo.signature,[代码][代码] [代码][代码]auth_rawData: encodeURI(authInfo.rawData)[代码][代码] [代码][代码]},[代码][代码] [代码][代码]data: {},[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]console.log(res);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]});[代码]但如何保证这几个变量全局有效,难道每次调用之前都调用下wx.getUserInfo,在callback回调执行业务请求么? 目前我使用wepy框架app.js中代码如下,其他页面都是先进行sendChek(function(){}) 回调类似上面的业务代码的 [代码]sendCheck(cb) {[代码][代码] [代码][代码]wepy.checkSession({[代码][代码] [代码][代码]success: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]console.log([代码][代码]'session_key 未过期,并且在本生命周期一直有效'[代码][代码]);[代码][代码] [代码][代码]this[代码][代码].getUserInfo(cb);[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]// session_key 已经失效,需要重新执行登录流程[代码][代码] [代码][代码]wepy.login({[代码][代码] [代码][代码]success: [代码][代码]function[代码][代码](res) {[代码][代码] [代码][代码]if[代码] [代码](res.code) {[代码][代码] [代码][代码]wepy.request({[代码][代码] [代码][代码]url: [代码][代码]'http://localhost:64606/login/get_session'[代码][代码],[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]code: res.code[代码][代码] [代码][代码]},[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]if[代码] [代码](res.data.token) {[代码][代码] [代码][代码]wepy.setStorageSync([代码][代码]'user-token'[代码][代码], res.data);[代码][代码] [代码][代码]this[代码][代码].getUserInfo(cb);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]});[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]console.log([代码][代码]'登录失败!'[代码] [代码]+ res.errMsg);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}); [代码][代码]// 重新登录[代码][代码] [代码][代码]}[代码][代码] [代码][代码]});[代码][代码] [代码][代码]}[代码][代码] [代码][代码]getUserInfo(cb) {[代码][代码] [代码][代码]const that = [代码][代码]this[代码][代码];[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]this[代码][代码].globalData.userInfo) {[代码][代码] [代码][代码]cb && cb([代码][代码]this[代码][代码].globalData.userInfo, [代码][代码]this[代码][代码].globalData.authInfo);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]wepy.getUserInfo({[代码][代码] [代码][代码]success(res) {[代码][代码] [代码][代码]that.globalData.authInfo = {[代码][代码] [代码][代码]signature: res.signature,[代码][代码] [代码][代码]rawData: res.rawData[代码][代码] [代码][代码]};[代码][代码] [代码][代码]that.globalData.userInfo = res.userInfo;[代码][代码] [代码][代码]cb && cb(that.globalData.userInfo, that.globalData.authInfo);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]});[代码][代码] [代码][代码]}[代码] 目前我的疑问是是否有其他简单的写法优化这种机制.找了几个开源项目看都好像没有涉及到数据安全的处理
2018-04-18