当前位置:首页 > JavaScript > 微信小程序中的登录

微信小程序中的登录

一叶知秋2024-07-29 18:57:44JavaScript28

微信小程序的登录功能是通过微信提供的 wx.login() 方法实现的。以下是一个简单的示例:

  1. 在 app.js 文件中,添加如下代码:
App({
  onLaunch: function () {
    // 登录
    this.checkLogin();
  },
  checkLogin: function () {
    var that = this;
    wx.checkSession({
      success: function (res) {
        // session_key 未过期,并且在本生命周期一直有效
        if (res.session_key) {
          console.log('登录态未过期');
        } else {
          // session_key 已过期,需要重新登录
          that.login();
        }
      },
      fail: function () {
        // session_key 已经失效,需要重新登录
        that.login();
      }
    });
  },
  login: function () {
    var that = this;
    wx.login({
      success: function (res) {
        if (res.code) {
          //发起网络请求
          wx.request({
            url: 'https://your-server.com/login',
            data: {
              code: res.code
            },
            success: function (response) {
              if (response.data.status === 'success') {
                // 保存用户信息到本地缓存
                wx.setStorageSync('userInfo', response.data.userInfo);
                console.log('登录成功');
              } else {
                console.log('登录失败');
              }
            }
          });
        } else {
          console.log('登录失败!' + res.errMsg);
        }
      }
    });
  }
});
  1. 在需要使用登录功能的页面中,添加如下代码:
Page({
  data: {
    userInfo: {}
  },
  onLoad: function () {
    var that = this;
    // 检查登录状态
    that.checkLogin();
  },
  checkLogin: function () {
    var that = this;
    wx.getStorage({
      key: 'userInfo',
      success: function (res) {
        if (res.data) {
          // 用户已登录,直接从缓存中读取用户信息
          that.setData({
            userInfo: res.data
          });
        } else {
          // 用户未登录,调用登录方法
          that.login();
        }
      }
    });
  },
  login: function () {
    var that = this;
    wx.showLoading({
      title: '登录中...',
      mask: true
    });
    // 调用登录接口
    wx.login({
      success: function (res) {
        if (res.code) {
          //发起网络请求
          wx.request({
            url: 'https://your-server.com/login',
            data: {
              code: res.code
            },
            success: function (response) {
              if (response.data.status === 'success') {
                // 保存用户信息到本地缓存
                wx.setStorageSync('userInfo', response.data.userInfo);
                that.setData({
                  userInfo: response.data.userInfo
                });
                wx.hideLoading();
                console.log('登录成功');
              } else {
                wx.hideLoading();
                console.log('登录失败');
              }
            }
          });
        } else {
          wx.hideLoading();
          console.log('登录失败!' + res.errMsg);
        }
      }
    });
  }
});

在这个示例中,我们首先检查本地缓存中是否有用户信息。如果有,说明用户已登录;如果没有,调用 wx.login() 方法进行登录。登录成功后,将用户信息保存到本地缓存,并在需要时从缓存中读取。

扫描二维码推送至手机访问。

版权声明:本站部分文章来自AI创作、互联网收集,请查看免责申明

本文链接:https://www.yyzq.team/post/368782.html

新工具上线:
分享给朋友: