• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

小程序分析

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

封装登录功能:模板复用方式

通过 wxlogin(布尔值)状态来处理是否登录,以及显示和隐藏

检测登录状态的方法

一、 登录:

  1. 允许授权:

//处理允许登录的功能 processLogin(e) { console.log(\'点击允许获取用户信息:\',e) if (!e.detail.userInfo) { wx.showToast({ title: \'已取消\', icon: \'none\', }) return; }

//调用register方法将用户信息存入后台数据库
AUTH.register(this);

},

//存入用户数据到后台数据库 async function register(page) { console.log(\'register::::\',this) let _this = this;

//调用wx.login获取code凭证 wx.login({
success: function (res) { let code = res.code; // 微信登录接口返回的 code 参数,下面注册接口需要用到

  //获取用户信息
  wx.getUserInfo({
    success: function (res) {
      console.log(\'wx.getUserInfo:\',res)
      let iv = res.iv;
      let encryptedData = res.encryptedData;
      let referrer = \'\' // 推荐人
      let referrer_storge = wx.getStorageSync(\'referrer\');
      if (referrer_storge) {
        referrer = referrer_storge;
      }
      // 下面开始调用注册接口,写入后台数据库
      //接口文档:https://api.it120.cc/doc.html#/%E5%89%8D%E7%AB%AFapi%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/registerComplexUsingPOST_15


      WXAPI.register_complex({
        code: code,
        encryptedData: encryptedData,
        iv: iv,
        referrer: referrer
      }).then(function (res) {

        //写入数据库成功后,调用自己封装的login方法
        _this.login(page);
      })
    }
  })
}

}) }

//login登录方法,从后台数据库读取用户写,并onshow重新展示

async function login(page){ const _this = this wx.login({ success: function (res) { console.log(\'开始登录啦!\',res) WXAPI.login_wx(res.code).then(function (res) {
console.log(\'获取code\',res)
if (res.code == 10000) { // 去注册 //_this.register(page) return; } if (res.code != 0) { // 登录错误 wx.showModal({ title: \'无法登录\', content: res.msg, showCancel: false }) return; } wx.setStorageSync(\'token\', res.data.token) wx.setStorageSync(\'uid\', res.data.uid) if ( page ) { page.onShow() } }) } }) }

2.// 检测登录状态,返回 true / false async function checkHasLogined() { const token = wx.getStorageSync(\'token\') if (!token) { return false } const loggined = await checkSession() if (!loggined) { wx.removeStorageSync(\'token\') return false } const checkTokenRes = await WXAPI.checkToken(token) if (checkTokenRes.code != 0) { wx.removeStorageSync(\'token\') return false } return true }

  1. 获取用户信息: _this.getUserApiInfo();

    //获取登录后的用户信息 getUserApiInfo: function () { var that = this;

    //获取用户信息,当然可以自己封装userDetail接口来获取 WXAPI.userDetail(wx.getStorageSync(\'token\')).then(function (res) { console.log(\'用户详情:::\',res); if (res.code == 0) { let _data = {} _data.apiUserInfoMap = res.data if (res.data.base.mobile) { _data.userMobile = res.data.base.mobile } if (that.data.order_hx_uids && that.data.order_hx_uids.indexOf(res.data.base.id) != -1) { _data.canHX = true // 具有扫码核销的权限 } that.setData(_data); } })

展现到个人中心的页面上(包括用户名和头像)

4.登录后获取个人资产: _this.getUserAmount();

//封装用户个人资产方法(包括余额,积分。。。。。) getUserAmount: function () { var that = this;

//调用封装的获取用户信息的请求接口,也可自己按照咱们自己的封装去请求
WXAPI.userAmount(wx.getStorageSync(\'token\')).then(function (res) {
  console.log(\'用户\',res)
  if (res.code == 0) {
    that.setData({
      balance: res.data.balance.toFixed(2),  //处理成保留两位小数的余额
      freeze: res.data.freeze.toFixed(2),
      score: res.data.score,
      growth: res.data.growth
    });
  }
})

}

退出登录:

loginOut(){

//清缓存
AUTH.loginOut()

//跳转到我的页面
wx.reLaunch({
  url: \'/pages/my/index\'
})

}


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序分析 - 木森焱发布时间:2022-07-18
下一篇:
[微信小程序]初试——成绩分析小程序问题总结发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap