uniapp小程序授权登录

基本和微信小程序操作类似,先让小程序授权,授权成功获取code,然后通过code调用后台接口,去获取用户信息,即可得到openID。
首先调用小程序授权:login方法,拿到code,不同小程序的授权方式不同,可以用uniapp判断语法做相应操作

// #ifdef MP-WEIXIN
uni.login({
  provider: 'weixin',
  success: (loginRes)=>{
    if (loginRes.code) {
      this._getWxOpenId(loginRes.code, callback);
    }
  }
});
// #endif
// #ifdef MP-ALIPAY
// 系统建议使用支付宝原生写法
my.getAuthCode({
  scopes: 'auth_base',
  success: (authData) => {
    let code=authData.authCode;
    this._getAliOpenId(code, callback);
    }
 });
// #endif

然后调用后台接口,传入code和需要的值,去获取用户信息,这里微信和支付宝写了两个方法,主要是参数的接口地址不同,就分开处理了。

// 微信授权获取openId
_getWxOpenId(code, callback) {
  let url = `后台接口地址`;
  this.$request({
    url: url,
    data: {
      code: code,
      userType: getApp().globalData.appType,
      appId: getApp().globalData.wxMyAppId
    },
    success: (data) => {
      console.log('通过code授权', data)
      if (data && data.obj) {
        let userInfo = data.obj;
          getApp().globalData.userInfo = userInfo;
          this._saveCache(userInfo);
        } else {
          uni.showToast({
            title: data.message || '获取openId失败',
            icon: 'none'
          })
        }
        callback && callback();
      },
      fail: (err) => {
        callback && callback();
        uni.showToast({
          title: '网络开小差了,获取openId失败',
          icon: 'none'
        })
      }
    })
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容