0
点赞
收藏
分享

微信扫一扫

《微信小程序案例9》小程序登录流程

沉浸在自己的世界里 2022-09-27 阅读 259

一、小程序登录流程 

 code:用户凭证

1、获取用户的昵称头像信息的请求wx.getUserProfile

2、使用wx.login获取用户code码

 3、拿到appid和appSecret后使用wx.request去获取openid和sessionkey

4、自定义登录态存入缓存storage

 这里还把用户信息存入缓存storage

 

// pages/demo3/demo3.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    hdsrc:"/img/weixin.png",
    name:"登录/注册"
  },
  getLogin: function () {
    // 获取用户信息
    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (res) => {
        console.log(res);
        var hdsrc = res.userInfo.avatarUrl;
        var nickName = res.userInfo.nickName;
        wx.login({
          timeout: 3000,
          success:(res)=>{
            // console.log(res.code);
            wx.request({
              url: 'https://api.weixin.qq.com/sns/jscode2session',
              method:"GET",
              data:{
                appid:"wxd4229379d53b0345",
                secret:"bf27c58cf21d60710b8b44eeb66f836a",
                js_code:res.code,
                grant_type:"authorization_code"
              },
              success:(res)=>{
                   if(res.data.openid) {
                     this.setData({
                       hdsrc:hdsrc,
                       name:nickName
                     })
                       var logObj = {
                          islogin:1,
                          userinfo:{
                            hdsrc:hdsrc,
                            name:nickName
                          }
                       }
                       wx.setStorageSync('islogin', logObj)
                   }
              }
            })
          }
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

在onShow里面判断缓存

// pages/demo1/demo1.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    islogin:0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
      
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
      console.log(33333);
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    var islogin = wx.getStorageSync("islogin");
    console.log(islogin);
    if(islogin) {
      this.setData({
        islogin:1
      })
    }else {
      this.setData({
        islogin:0
      })
      wx.showModal({
        content:"是否前往登录",
        success:(res)=>{
          // 用户点击确定
           if(res.confirm) {
              wx.switchTab({
                url: '/pages/demo3/demo3',
              })
           }else {

           }
        }
      })
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

二、服务器连接数据库、获取数据库数据返回前端

CSDN

三、把用户信息存入数据库

当获取到openid成功时调用wx.request请求服务器把前端传的用户信息数据保存到数据库

举报

相关推荐

0 条评论