微信小程序登录机制实现

实现微信小程序登录机制的必要性

1、标识用户身份,区分游客和注册用户行为,确保用户只能访问自己的数据,根据用户身份提供定制化内容

2、安全与权限控制:对于敏感操作(如:支付,个人信息修改等),需要用户进行身份确认,避免接口被恶意调用

3、记录用户操作路径和习惯,实现同一用户在多个小程序的数据同步,实现好友关系,用户互动等社交功能的基础

4、有利于商业价值提升,登录用户通常由更高的留存率,方便基于用户身份定向推送和营销,是构建积分,等级等会员系统的基础

基本登录流程

1、前端调用wx.login(),接口获取临时登录凭证code(有效期为5分钟)

uni.login({
  success: (res) => {
    if (res.code) {
      // 发送code至后端
      this.sendCodeToServer(res.code);
    } else {
      console.error('获取code失败:', res.errMsg);
    }
  }
});

2、发送code到服务器,服务器根据code生成用户的session标识(如token),并返回给小程序

3、小程序将token存储在本地,用于后续请求的身份验证

存储方案

1、加密Storage ,uni.setStorageSync('token', AES加密(token)),该存储方式适用于长期持久化存储的场景,即用户在登录操作之后较长一端时间内不必再重新进行登录操作

2、内存变量:getApp().globalData.token = token,利用全局变量的方式进行存储,适用于高频访问的临时存储的场景,用户每次进入小程序后都需要重新登录

3、混合方案:登录成功后进行加密Storage存储,在每次进入小程序时从本地存储中取出token,用全局变量存储,这样在本次使用小程序时就无需每次使用token都进行解密操作

后续身份验证

在每次加载小程序前,通过调用全局函数进行检查(验证函数只执行一次,执行之后可用一个全局状态变量保存目前是否为登录状态,避免重复验证做无用功,这里推荐在App.vue文件的onLaunch: function() {}中验证登录状态,因为这个是小程序的生命周期函数,在小程序初始化时被调用一次),验证本地token是否可用,可以通过试请求(即通过调用一些轻量级请求,比如请求用户信息)的方式,如果不可用,弹出弹窗,提示用户进行重新登录,获取新的token

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值