小程序的本地存储和登录授权

Posted ```飞翔的翅膀```

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序的本地存储和登录授权相关的知识,希望对你有一定的参考价值。

小程序的本地存储

  1. 本地存储有同步,也有异步,用法一样,同步与异步的区别,就是我们平时理解的同步与异步
  2. 这个本地数据的生命周期和小程序同步,如果要清除数据,我们可以用代码删除,或者用户删除(卸载)小程序,用户清理微信数据
  3. 本地数据单个键最多只能存1M内容,所有本地数据不能超过10M.
  <button bindtap="cun">存数据</button>
  <button bindtap="qu">取数据</button>
   <button bindtap="del"></button>

 cun:function () 
    wx.setStorageSync('name', "jason") //存
  ,
  qu:function () 
    wx.setStorageSync('name', "jason is  sb") //改
   console.log( wx.getStorageSync('name')) //取
  ,
  del:function() 
    //wx.clearStorageSync() //清除所有的本地数据
    wx.removeStorageSync('name') //清除指定的本地数据
  

注意:小程序的本地储存和vue.js的本地存储用法差不多

小程序的登录授权

点击进入店铺--进入首页--获取到token,uid

 如何获取token
 
  第一步:通过wx.login得到code,调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息
  第二步:通过调用公司后台接口(自动注册/登录接口)获取腾讯用户的匿名信息
  
  //引入接口
const authorize=require('../../http/api')
  //登录/注册
  goLogin() 
   wx.login(
    success(res) 
      console.log(res);
      let code=res;
      authorize(code).then(res=>
        console.log('我能获取到信息:',res);
        if(res.code===0) 
          //解析出token,uid,但是得到是匿名用户信息
          let token,uid=res.data
          if(!wx.getStorageSync('token')) 

            wx.setStorageSync('token', token)
          
          
        
      )
    
   )

  
  第三步:获取微信详细的用户信息
  
     获取微信用户详细:
     
        以前:wx.getUserInfo()
        现在:wx.getUserProfile()
        
        token:是用户的唯一标识,是用户(前端)登录之后,后台对用户名,密码和失效时间加密返回给浏览器的一个字符串,用户(前端)可以利用token写其他业务代码
        
        检测token是否有效:调取公司后台接口来检测是否有效 user/check-token
        检测微信登录态是否有效  wx.checkSession()
        
  //检测微信登录状态      
 async function checkSession()
  return new Promise((resolve, reject) => 
    wx.checkSession(
      success() 
        return resolve(true)
      ,
      fail() 
        return resolve(false)
      
    )
  )

        
// 整体检测微信和token是否失效,返回 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

以上是关于小程序的本地存储和登录授权的主要内容,如果未能解决你的问题,请参考以下文章

小程序中基于token的登录流程

微信小程序的登录和授权注意事项

支付宝小程序授权登录踩坑

微信小程序怎么授权登录

小程序-文章:微信第三方登录(静默授权和非静默授权)

如何注销微信小程序的授权?