加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

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

发布时间:2020-12-14 19:55:38 所属栏目:资源 来源:网络整理
导读:惠民小程序小编了解到,微信小程序成为当下热门话题,下面从多个方面来谈谈 微信小程序登录方式的修改解决方案 。 最新消息, 对于大多数孩子在上学的家长来说,微信上打开率最高的群,除了工作群大概就是孩子的班级群了。 微信小程序官方登录方式修改,要求

惠民小程序小编了解到,微信小程序成为当下热门话题,下面从多个方面来谈谈微信小程序登录方式的修改解决方案

最新消息, 对于大多数孩子在上学的家长来说,微信上打开率最高的群,除了工作群大概就是孩子的班级群了。

微信小程序官方登录方式修改,要求通过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',30);// 存储用户标识符到本地this.$root.$parent.store.set('token',30);this.$root.$parent.store.set('is_created',is_created,30);//redux// store.dispatch({// type: 'SET_IS_CREATED',// payload: is_created,// });}

就酱愉快的重构结束~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读