小程序登录流程

本文详细介绍了微信小程序实现用户登录的步骤,包括前端表单收集、验证及后端接口交互,以及微信API登录、绑定用户信息和登出操作。前端涉及手机号和密码的合理性验证,后端负责用户存在性和密码校验,登录成功后信息本地存储。同时,还涵盖了使用wx.getUserProfile获取微信用户信息并存储的过程。
摘要由CSDN通过智能技术生成

 

简单讲下流程, 方便以后查看. 顺便吐槽下 typ 居然不会自动保存 ==

1) 通过后端接口实现登录

一.收集表单数据

类似v-model 实时收集填写数据

bindinput => 实时获取value值

// 用id 传参
handleInput(e){
    let type = e.currentTarget.id;
    console.log(e.detail.value, type);
    this.setData({
      // 操控变量需要用到中括号
      [type]: e.detail.value
    })
  }

 

二.前端验证

  1. 验证用户输入信息(手机号长度,格式, 密码长度)是否合理,(正则表达式)

  2. 前端验证不通过就直接提示用户, 不需要给后端发送请求

  3. 前端验证通过, 携带账号密码, 发请求到后端

    let { phone, pwd } = this.data
        if (!phone){
          // 手机号为空
          wx.showToast({
            icon: 'none',
            title: '请输入手机号',
          })
          return;
        }else if( !pwd ){
          wx.showToast({
            icon: 'none',
            title: '请输入密码',
          })
          return;
        }
        // 定义正则表达式
        let phoneReg = /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/
        // let phoneReg = /^1(3|4|5|6|7|8|9)\d{9}/
        if ( !phoneReg.test(phone) ){
          wx.showToast({
            icon: 'none',
            title: '手机号格式不正确',
          })
          return;
        }

     

三. 后端验证

  1. 验证用户是否存在

  2. 不存在 => 返回, 提示用户你不存在

  3. 存在 => 验证密码是否正确

  4. 不正确 => 返回前端密码不正确

  5. 正确 => 返回携带用户信息的信息, 提示用户登录成功, 并把信息保存至本地(注意转化成 json 格式, 读取时也要转化)

let res = await requset('/login/cellphone', { phone, password })
if ( res.code === 200 ){
      wx.showToast({
        icon: 'none',
        title: '登录成功',
      })
      // 将用户信息存储至本地
      wx.setStorageSync('userInfo',
                        JSON.stringify(res.profile) )
      
      wx.reLaunch({
        url: '/pages/my/my',
      })
    }else if( res.code === 400 ){
      wx.showToast({
        icon: 'error',
        title: '手机号错误',
      })
    }else if( res.code === 502 ){
      wx.showToast({
        icon: 'error',
        title: '密码错误',
      })
    }else{
      wx.showToast({
        icon: 'error',
        title: '登录失败,请重新登录',
      })
    }

 

2)通过 wx 自带 api 进行登录, 绑定微信信息

一. 页面加载时查询本地登录信息

  1. 无, 显示登录界面

  2. 有, 调取本地信息

    // 从本地中取出缓存
        let user = wx.getStorageSync('user')
        this.setData({
          userInfo: user
        })

     

二. 登录

  1. 调用 wx 自带 api , wx.getUserProfile, 成功回调把信息缓存至本地(这里得信息是微信的, 微信昵称头像等等)

 login(){
    wx.getUserProfile({
      desc: '用于完善信息',
      success: res => {
        let user = res.userInfo
        // 把用户登录信息缓存到本地
        wx.setStorageSync('user', user)
        console.log(res);
        this.setData({
          userInfo: user
        })
      },
      fail: res => {
        console.log(res);
      }
    })
  }

 

三.登出

把本地存储的登录信息清空

loginOut(){
    this.setData({
      userInfo: '',
    })
    wx.setStorageSync('user','')
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yi_mu?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值