欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序登录方式的修改解决方案

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:738

高端HTML5响应式企业通用网

2020-05-06   浏览:518

html5响应式外贸网站英文版

2020-05-08   浏览:505

HTML5自适应律师工作室类网

2020-04-04   浏览:502

HTML5影视传媒文化公司类网

2020-05-12   浏览:496

微信小程序登录方式的修改解决方案

发布时间:2020-10-20  

微信小程序官方登录方式修改,要求通过button点击登录,和大家分享一下我的解决方案。

原先的登录逻辑是注册一个全局login方法, login方法中首先调用wx.login静默登录,获取临时登录凭证code,在开发者服务器后台调用 api,使用 code 换取 openid 和 session_key 。然后调用wx.getUserInfo获取用户信息。

现在的实现逻辑是写一个button中转页,进入小程序wx.getUserInfo获取失败后跳转到button中转页,点击button调用bindgetuserinfo方法,该方法返回的detail数据与wx.getUserInfo方法返回的信息一致,此时也可以获取到用户信息。回调成功后wx.navigateBack({})回原页面。

下面贴上部分代码片段:

async bindGetUserInfo(event) { const { detail } = event; const isSuccess = detail.errMsg === 'getUserInfo:ok'; if (isSuccess) { this.authSuccess(detail); return; } // 用户拒绝授权 // wx.navigateBack({}); } async authSuccess(detail) { await this.getToken(detail); wx.navigateBack({}); // this.nextHander(); } 保存用户信息 async getToken(detail) { console.log('getToken', detail); const session_key = wx.getStorageSync('session_key'); const { encryptedData: encrypted_data, iv } = detail; const that = this; // 保存用户信息到服务器 const { data: { user, up_token, token, is_created } } = await this.fetch({ url: '/api/artisan/wechat/login', data: { session_key, encrypted_data, iv, }, method: 'POST', }); wx.setStorageSync('user', user); this.$root.$parent.store.set('up_token', up_token, 30); // 存储用户标识符到本地 this.$root.$parent.store.set('token', token, 30); this.$root.$parent.store.set('is_created', is_created, 30); // redux // store.dispatch({ // type: 'SET_IS_CREATED', // payload: is_created, // }); }

本文标签

:备案管家服务帮您把复杂流程变简单,解决您在进行网站备案过程中遇到的效率低下和成功率不高的问题。个人300/2个域名,企业500/5个域名,qq1650004.