美文网首页
微信小程序的登录允许拒绝

微信小程序的登录允许拒绝

作者: aimee66 | 来源:发表于2019-04-30 14:10 被阅读0次

    多次拒绝登录和允许登录

    微信小程序的登录获取用户信息,是通过微信弹出窗口,用户可点击允许 和拒绝两个按钮,点击允许,则获取用户信息登录成功,若点击拒绝,则获取失败,可通过二次请求调用弹起获取用户信息窗口,如图所示。

    登录界面

    20171010170924260.png

    登录窗口

    20171010170833018.png

    二次登录窗口

    20171010171035848.png

    登录成功后

    20171010171101974.png

    具体代码如下:

    //app.js
    App({
      onLaunch: function () {
        //调用API从本地缓存中获取数据
        var logs = wx.getStorageSync('logs') || [];
        logs.unshift(Date.now());
        wx.setStorageSync('logs', logs);
        console.log('logs',logs);
      },
      getUserInfo:function(cb){
          var that = this;
         //调用登录接口
          function getOpenid(backMsg){
            that.globalData.userInfo = backMsg.userInfo;
            that.globalData.encryptedData = backMsg.encryptedData;
            that.globalData.iv = backMsg.iv;
            that.globalData.login = true;
            console.log(that.globalData.code);
            wx.request({/**通过code获取openid**/
              url:that.localUrl+'Login/sendCodeLogin',
              data:{
                code:that.globalData.code,
                encryptedData: backMsg.encryptedData,
                iv:backMsg.iv
              },
              success:function(openData){
                console.log('返回openid',openData,openData.data);
                if(openData.data.code==1001){
                  that.globalData.openid = openData.data.data.openid;
                  wx.setStorageSync('openid',that.globalData.openid);
                  wx.setStorageSync('userInfo',that.globalData.userInfo);
                  wx.setStorageSync('isManager', openData.data.data.isManager);
                  wx.showToast({
                    title: '登录成功',
                    icon: 'success',
                    duration: 500
                  });
                  typeof cb == "function" && cb(that.globalData.userInfo);
                }else{
                  wx.showLoading({
                    title: '登录失败'
                  });
                  setTimeout(function () {
                    wx.hideLoading();
                  }, 500)
                }
              }
            })
    
          }
          wx.login({
            success: function (msg) {
              console.log('code',msg);
              if(msg.code){
                that.globalData.code = msg.code;
                if(that.globalData.login==false){
                  wx.openSetting({
                    success: function (data) {
                      if(data) {
                        if (data.authSetting["scope.userInfo"] == true) {
                          //loginStatus = true;
                          wx.getUserInfo({
                            withCredentials: false,
                            success: function (res) {
                                console.log('第二次成功',res);
                                getOpenid(res);
                              
                            },
                            fail: function (res) {
                              that.globalData.login = false;
                              console.log('二次失败',res);
                            }
                          });
                        }else{
                          that.globalData.login = false;
                          console.log('二次失败02');
                        }
                      }
                    },
                    fail: function () {
                      console.info("设置失败返回数据");
    
                    }
                  });
                }else{
                  wx.getUserInfo({/**获取用户信息**/
                    success: function (res) {
                      console.log('第一次成功',res);
                      getOpenid(res);
                    },fail:function(msg){
                      that.globalData.login = false;
                      console.log('第一次失败',msg);
                    }
                  })
                }
              }
            },
            fail:function(res){
              console.log(res);
            }
          })
        
      },
      globalData:{
        userInfo:null,
        encryptedData:null,
        iv:null,
        openid:null,
        code:null
      }
    });
    

    可扫描下方小程序二维码体验

    20171010171332598.jpeg

    相关文章

      网友评论

          本文标题:微信小程序的登录允许拒绝

          本文链接:https://www.haomeiwen.com/subject/anxvnqtx.html