首页 > 编程语言 >【微信小程序】缓存过期时间的相关设置

【微信小程序】缓存过期时间的相关设置

时间:2023-01-16 18:02:12浏览次数:42  
标签:缓存 过期 微信 token expiration data wx


微信小程序缓存机制介绍

  每个微信小程序都可以有自己的本地缓存,可以通过 ​​wx.setStorage(wx.setStorageSync)​​​、​​wx.getStorage(wx.getStorageSync)​​​、​​wx.clearStorage(wx.clearStorageSync)​​可以对本地缓存进行设置、获取和清理。

  但是微信默认设置了缓存是无限长的过期时限,这对于我们的小程序开发,是非常不好的。

哪些是一定需要过期的缓存

  我正在开发的项目中,用户通过第三方登录拿到一个​​token​​​,每次请求都必须带上​​token​​​,但是​​token​​的时限是30分钟。

  所以​​token​​就属于有必要当成缓存,但是又必须设置缓存时限的数据。

写法

  在用户登录成功后,把过期时间、token一起存入缓存:

// 设置token缓存
wx.setStorageSync('token', res.data.token);
// 当前时间
var timestamp = Date.parse(new Date());
// 加上过期期限
var expiration = timestamp + 1200000; //缓存20分钟
// 存入缓存
wx.setStorageSync('data_expiration', expiration);

  在​​app.js​​入口文件里,监测是否超时:

// 缓存是否过期
_isExpiration() {
// 当前时间
var timestamp = Date.parse(new Date());
// 缓存中的过期时间
var data_expiration = wx.getStorageSync("data_expiration");
// 如果缓存中没有data_expiration,说明也没有token,还未登录
if (data_expiration) {
// 如果超时了,清除缓存,重新登录
if (timestamp > data_expiration) {
wx.clearStorageSync();
return true;
}else{
return false;
}
}
return true;
},


标签:缓存,过期,微信,token,expiration,data,wx
From: https://blog.51cto.com/u_15942590/6010677

相关文章

  • 【微信小程序】tabbar报错Component is not found in path “custom-tab-bar/index“
    问题描述  在​​app.json​​​配置好​​tabBar​​​,发现页面毫无变化,甚至还报错了​​Componentisnotfoundinpath"custom-tab-bar/index"​​。配置是从微信小......
  • SSL证书过期更新
    1.前言在实际开发过程中经常会遇到证书过期的问题如图所示       2.在阿里云或者其他平台重新申请下载证书到本地我们的业务使用的是阿里云平台  ......
  • 微信公众号开发之模板消息
     欢迎留言、转发微信极速开发系列文章:​​点击这里​​最近有点小感冒,文章的更新进度延误了一些,希望此系列文章对你​​研究微信公众开发​​​有帮助。前几篇文章介绍了微......
  • 聊聊分布式缓存
    缓存作为磁盘以外的一种存储数据的方式,它有着比磁盘更快的存取效率,因此,可以有效提高系统的性能。在单体系统中,一般会用到本地缓存。但在分布式系统中,本地缓存就显得不够用......
  • 36 | 局部性原理:数据库性能跟不上,加个缓存就好了?
    平时进行服务端软件开发的时候,我们通常会把数据存储在数据库里。而服务端系统遇到的第一个性能瓶颈,往往就发生在访问数据库的时候。这个时候,大部分工程师和架构师会拿出......
  • 缓存穿透及解决方案
    缓存只是为了缓解数据库压力而添加的一层保护层,当从缓存中查询不到我们需要的数据就要去数据库中查询了。如果被黑客利用,频繁去访问缓存中没有的数据,那么缓存就失去了存在的......
  • .NetCore下基于FreeRedis实现的Redis6.0客户端缓存之缓存键条件优雅过滤
    前言众所周知内存缓存(MemoryCache)数据是从内存中获取,性能表现上是最优的,但是内存缓存有一个缺点就是不支持分布式,数据在各个部署节点上各存一份,每份缓存的过期时间不一......
  • 微信小程序自定义字体
    微信小程序自定义字体  解决方法 //加载字体wx.loadFontFace({global:true,family:'cl',......
  • 上传微信素材的两种方式
    ///<summary>///上传微信素材的两种方式///</summary>///<returns></returns>publicasyncTask<IActionResult>UploadL......
  • 微信Tweak-macOS 客户端撤回拦截
    GitHub-sunnyyoung/微信Tweak-macOS:微信macOS的动态库调整-首款微信macOS客户端撤回拦截与多开......