当前位置:微信小程序开发 > 小程序资讯 > 小程序开发教程 > 微信小程序登录方式的修改解决方案

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

2018-07-30 10:57 来源: 霸界科技

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

期权保本理财
  微信小程序官方登录方式修改,要求通过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,
 
  // });
 
  }
分享到:
最新评论

网友:

验证码: 点击我更换图片

联系我们

业务咨询:15918761088

招商咨询:15918761088(微信同号)

周一至周五 9:30-18:30

公司地址:广州市海珠区昌岗中路166号富盈国际大厦2505室

官方微信 官方微博

Copyright © 2018 www.keji168.com 广州霸界网络科技有限公司版权所有 粤ICP备18083764号-1

客服
套餐咨询,合作细节等
在线客服
电话咨询
159-1876-1088