标签:responseData 逻辑 customerTel 登录 微信 用户 res
微信小程序的登录逻辑:
1、调用wx.login获取微信code
2、将code、授权登录参数(标识不同的小程序)传给后端获取openid,unionid,customerTel。存储openid支付时使用。
包括用户在当前小程序的唯一标识(openid)、微信开放平台帐号下的唯一标识(unionid,若当前小程序已绑定到微信开放平台帐号)及本次登录的会话密钥(session_key)等。
3、选择微信授权登录,不同用户情况分类:
1)、返回了customerTel:后端根据unionid查询到有绑定关系的customerTel返回给前端(可判断为注册过的老用户),前端再调用登录接口获取token,存储token,实现静默登录。 2)、 未返回customerTel: 后端根据unionid查询到没有绑定的customerTel(无法判断是新用户还是老用户) 点击微信一键登录按钮,拉起手机号授权弹窗,如果用户允许授权,获取信息发给后端解密出手机号 前端再调用登录接口获取token,存储token,实现授权登录 4、 选择验证码登录,跳转新页面 输入手机号、验证码。首次登录执行注册+登录 wx.login({ success: (res) => { api .getUnionId({ code: res.code, wxType: env.wxType, }) .then((res) => { app.globalData.openId = res.responseData.openId; //微信支付需要使用openid app.storage.setData("openID", res.responseData.openId); this.data.openId = res.responseData.openId; this.data.unionId = res.responseData.unionId; this.setData({ hideLoading: true, }); if (res.responseData.customerTel) { if (!app.globalData.isNewCustomer) { //标识新用户,'10'新用户,'20'老用户 app.globalData.isNewCustomer = "20"; } this.data.customerTel = res.responseData.customerTel; } else { if (!app.globalData.isNewCustomer) { //标识新用户,'10'新用户,'20'老用户 app.globalData.isNewCustomer = "10"; } } }) .catch((error) => { this.setData({ hideLoading: true, }); }); }, });标签:responseData,逻辑,customerTel,登录,微信,用户,res 来源: https://www.cnblogs.com/niufang/p/15901225.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。