微信小程序开发如何保持登录状态(微信小程序开发之登录)
若需要通过小程序获取用户的个人信息必须执行小程序的登录,通常做法是除了小程序登录凭证外,开发者为了安全会带上自己的token来进行开发,以保证数据交互安全。
下图是小程序官方提供的登录流程时序图:
小程序登录时序图
从上图可以看出小程序的登录是一个需要小程序前端开发和后端开发协同的一个过程。
简单的说核心步骤有两点:
1. 小程序调用wx.login()或者wepy.login()获取登录凭证code,并回传给开发者后台
2. 开发者后台调用auth.code2Session接口,换取用户信息。
注意事项:
1. 当一次交互失败后,小程序端必须重新全部执行,不能拿上次的wx.login()返回的code继续使用,这个code是一次性的。
2. 眼查查小程序登录流程目前我们有两个小程序,眼查查小程序和员工版,其中员工版由于不跟微信进行交互,无需记录openId之类的数据,所以在实际开发过程中,我们直接省略了小程序登录这个步骤,使用的是用户名和密码换取token。而眼查查小程序则由于需要接入微信的其他能力,并需要进行数据打通所以必须要进行小程序登录。
通常小程序登录都是在放在app实例中进行,我们的眼查查小程序也不例外。
async loginToServer() {
let res = await wepy.login();
let that = this
if (res.code) {
await api.getTokenNew({
auth: true,
method: 'POST',
query: {
grant_type: 'weixin',
wxcode: res.code
},
success: function (params) {
if (params.access_token) {
StorageUtils.getInstance().saveToken(params.access_token)
if (that.globalData.userInfo) {
that.updateNickNameAndAvatar()
}
that.queryDictionary()
}
},
fail: function (params) {
console.log(params)
}
})
}
}
3. 参考资料1. https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com