应使用结构化值(如含活动id、时间戳、版本号的对象)存储参与资格,避免仅存布尔值;需手动管理有效期并按活动维度命名key;localstorage仅作前端状态标记,权限校验必须由后端完成。

可以直接用 localStorage.setItem() 存储活动ID或用户参与资格标识符(如唯一token、活动编码、时间戳组合等),关键在于标识符要有业务意义且避免冲突。
选择合适的标识符格式
不要只存一个布尔值(如 "true"),而应存储可追溯、可验证的结构化值。常见做法包括:
- 纯活动ID:如
"promo_summer2024",适合简单标记“已参与” - 带时间戳的组合:如
"promo_backto1999_202406151422",便于后续判断参与时效 - Base64编码的轻量凭证:例如将
{uid: "u123", aid: "flashsale07", ts: 1718432540}序列化后存储,增强防篡改意识(注意:LocalStorage本身不安全,仅作前端标记用)
写入与读取示例代码
使用标准API即可,无需额外库:
// 存储参与资格(假设用户已通过后端校验)
const promoId = "promo_blackfriday2024";
const qualifier = {
id: promoId,
joinedAt: Date.now(),
version: "1.0"
};
localStorage.setItem("promo_qualifier", JSON.stringify(qualifier));
// 读取并解析
const stored = localStorage.getItem("promo_qualifier");
const qualifierData = stored ? JSON.parse(stored) : null;
if (qualifierData && qualifierData.id === "promo_blackfriday2024") {
console.log("用户已获得该活动参与资格");
}
注意有效期与清理逻辑
LocalStorage不会自动过期,需自行管理:
- 在存入时记录
expiresAt时间戳,每次读取前校验是否过期 - 活动结束或资格失效时,主动调用
localStorage.removeItem("promo_qualifier") - 避免多个活动共用同一key,建议按活动维度命名key,如
"promo_${id}_qualifier"
安全与兼容性提醒
重要提醒:LocalStorage数据可被用户任意查看和修改,绝不能用于存储敏感信息或作为权限判定的唯一依据。它只适合做前端体验优化(如隐藏已参与按钮、展示“已领取”状态),真实资格校验必须由后端接口完成。
所有现代浏览器均支持,无需额外兼容处理。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











