实现在微信小程序端的微信登录

微信小程序登录流程时序,如下:

业务逻辑:

1、通过open-type='getUserInfo' 获取用户信息;

2、调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器;

3、开发者服务器调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key;

4、登录态存缓存

实现在微信小程序端的微信登录_第1张图片



// 实现在微信小程序端的微信登录
wxLogin(e) {
  var me = this;
  // 1 通过微信开发能力,获得微信用户的基本信息
  var userInfo = e.detail.userInfo;
  
  // 2 实现微信授权登录
  uni.login({
    provider: "weixin",
    success(loginResult) {
      // 3 获得微信登录的code授权码,传递给后端,后端通过调用auth.code2Session 接口,换取用户唯一标识 OpenID 和 会话密钥 session_key
      var code = loginResult.code;
      uni.request({
        url: me.serverUrl,
        data: {
          "code": code,
          "avatarUrl": userInfo.avatarUrl,
          "nickName": userInfo.nickName
        },
        method: "POST",
        success(userResult) {
          var userInfo_wx = userResult.data.data;
          // 4 保存用户信息到全局的缓存中
          uni.setStorageSync("globalUser", userInfo_wx);
          // 5 切换页面跳转,使用tab切换的api
          uni.switchTab({
            url: "../me/me"
          });
        }
      });
      
    }
  })
},

 

你可能感兴趣的:(uniapp)