uniapp 登录后保存token并设置过期时间

1、首先定义一个公共方法(可以放到utils目录下)
// 缓存函数,设置或获取缓存值,带有过期时间戳
function cache(key, value, seconds) {
	// key: 缓存的键名,必填
	// value: 缓存的值,选填,如果为空则表示获取缓存,如果不为空则表示设置缓存
	// seconds: 缓存的过期时间,单位为秒,选填,默认为28天
	// 获取当前时间戳,单位为秒
	const timestamp = Date.parse(new Date()) / 1000;
	// console.log(`${timestamp}===${key}`);
	// 如果key为空,直接返回
	if (!key) {
		// console.log("key不能空");
		return;
	}
	// 如果value为空,表示获取缓存
	if (value === null) {
		// 获取缓存值,并按照"|"分割成数组
		const val = uni.getStorageSync(key);
		const tmp = val.split("|");
		// 如果数组的第二个元素不存在或者小于等于当前时间戳,表示缓存已过期,删除缓存并返回空字符串
		if (!tmp[1] || timestamp >= tmp[1]) {
			uni.removeStorageSync(key);
			return "";
		}
		// 否则表示缓存未过期,返回数组的第一个元素,即缓存值
		else {
			// console.log("key未失效");
			return tmp[0];
		}
	}
	// 如果value不为空,表示设置缓存
	else {
		// 如果seconds为空,则使用默认值28天,否则使用传入的值
		const expire = seconds ? timestamp + seconds : timestamp + 3600 * 24 * 28;
		// 将缓存值和过期时间戳用"|"连接成一个字符串,并存入缓存
		value = `${value}|${expire}`;
		uni.setStorageSync(key, value);
	}
}
export default cache

保存以后就是这样的 value值 | 过期时间的时间戳(以秒为单位) 

 2、使用:

 1、引用:

import cache from "@/utils/cache.js";

2、调用:

①:存token

      cache(key名字,value值 , 过期天数的时间戳)

例:

cache('user_token', res.data, 1296000)

②:取token

       cache(key名字,null)

 例:

cache('user_token', null)

         

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值