微信小程序用户授权以及判断登录是否过期的方法

Posted 喵喵喵喵要抱抱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序用户授权以及判断登录是否过期的方法相关的知识,希望对你有一定的参考价值。

实现效果

场景

在打开小程序时判断用户是否过期(如果未过期则重新登录),然后获取用户信息,进而在前台显示;

主要实现两个功能:

  1. 判断登录是否过期,如果过期则就重新登录,如果没过期就提示未过期;

  2. 获取用户的信息,并在前台显示;

代码

要实现在打开小程序时判断用户是否过期,则需要把代码写到 app.js 里:

// app.js

App({
  async onLaunch() {
    // 验证登录是否过期
    wx.checkSession({
      success: function (res) {
        console.log(res, '登录未过期');
        wx.showToast({
          title: '登录未过期'
        });
      },
      fail: function (res) {
        console.log(res, '登录已过期');
        wx.showModal({
          title: '提示',
          content: '登录已过期,请重新登录',
          success(res) {
            if (res.confirm) {
              // 调用接口获取登录凭证(code)
              wx.login({
                success(res) {
                  console.log(res);
                  if (res.code) {
                    // 发起网络请求
                    wx.request({
                      url: '<登录接口>',
                      method: 'post',
                      data: {
                        code: res.code
                      },
                      header: {
                        'content-type': 'application/x-www-form-urlencoded'
                      },
                      success(res) {
                        console.log(res);
                        if (res.data.code === 1) {
                          wx.switchTab({
                            url: '<首页url>'
                          });
                        } else {
                          console.log('登录失败!');
                          console.log(res);
                        }
                      },
                      fail(msg) {
                        console.log(msg);
                      }
                    });
                  } else {
                    console.log('登录失败!' + res.errMsg);
                  }
                }
              });
              wx.getSetting({
                success(res) {
                  if (res.authSetting['scope.userInfo']) {
                    // 已经授权,可以直接调用 getUserInfo 获取头像昵称
                    wx.getUserInfo({
                      success: function (res) {
                        console.log(res.userInfo);
                      }
                    });
                  } else {
                    wx.navigateTo({
                      url: '<注册url>'
                    });
                  }
                }
              });
            } else if (res.cancel) {
              wx.switchTab({
                url: '<首页url>'
              });
            }
          }
        });
      }
    });
  }
});

以上是关于微信小程序用户授权以及判断登录是否过期的方法的主要内容,如果未能解决你的问题,请参考以下文章

小程序-用户授权/授权后的信息读取流程

微信小程序始终是登录账号

微信小程序登录授权实现

微信小程序登录流程

微信小程序可以实现自动登录吗?

微信小程序之登录连接django,以及用户的信息授权认证