javascript - 如何在 Javascript 中设置 localStorage 项目的过期日期?

标签 javascript local-storage blogger

我正在努力提供对我的网站的高级访问权限。这样做时,我想要设置 localStorage 的登录名项目为 1 将在一个月后过期并被删除。我在网上搜索,但很困惑,因为我仍在学习 JavaScript 和 jQuery。你能帮我设置 localStorage 的过期时间吗?元素?这是设置 localStorage 的代码行:

localStorage.setItem('ispremium', '1');

我的网站位于 Blogger 平台上,如果这很重要的话!

最佳答案

您可以将实际值设置为用户首次加入的时间和过期时间。每当用户再次打开网站时,您都需要检查该到期日期。但这是非常不安全的,你不应该在 session 中这样做。为了回答您的问题,您可以执行以下操作:

const NAMESPACE = 'MY_ID';
const TIMESTAMP_MODEL = {
  initial: null,
  expiresOn: null
};
const TIMESTAMP = Date.now();

if (!JSON.parse(localStorage.getItem(NAMESPACE))) {
  // when the user access your website for the first time, set the initial and expiresOn values:

  localStorage.setItem(NAMESPACE, JSON.stringify({
    initial: TIMESTAMP,
    expiresOn: TIMESTAMP + 1000*60*60*24*30 // 1month in ms
  }));
} else {
    // then, when user access the website again, check the expiresOn, it it's value is bigger than current date
  const EXPIRE_DATE = JSON.parse(localStorage.getItem(NAMESPACE)).expiresOn;

  if (Date.now() > EXPIRE_DATE) {
    console.log('session expired');
  } 
}  

关于javascript - 如何在 Javascript 中设置 localStorage 项目的过期日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71020505/

相关文章:

javascript - 将 HTML 保留在脚本中以在 Blogger 中创建帖子摘要

java - 通过 Blogger API v 1.0 添加博客元描述

javascript - 我只能向二维数组添加三个元素,而不是四个

javascript - 隐藏屏幕外的元素部分并在单击时推送和显示

javascript - 在 $(document).foundation();未捕获的类型错误 : Cannot read property 'top' of undefined

javascript - 保存文本框数据并从本地存储返回 - angularJS -

javascript - JS : function pushing value into parametred localStorage.地址?

share - Blogger (Blogspot) 共享按钮以计算主页上的单个帖子页面

php - 将字符串变量转换为 CSS 或 JavaScript

javascript - 可查询的客户端存储