当前位置:首页 > JavaScript

js实现session

2026-04-06 17:37:10JavaScript

使用 sessionStorage 实现会话存储

sessionStorage 是 HTML5 提供的 Web Storage API 之一,用于在当前浏览器会话期间存储数据,关闭标签页或浏览器后数据会被清除。

存储数据

sessionStorage.setItem('key', 'value');

读取数据

const value = sessionStorage.getItem('key');
console.log(value); // 输出 'value'

删除数据

sessionStorage.removeItem('key');

清空所有数据

sessionStorage.clear();

使用 localStorage 实现持久化存储(可选)

如果需要在浏览器关闭后仍然保留数据,可以使用 localStorage,其 API 与 sessionStorage 相同,但数据不会随会话结束而清除。

localStorage.setItem('key', 'value');
const value = localStorage.getItem('key');
localStorage.removeItem('key');
localStorage.clear();

使用 express-session(Node.js 后端)

在 Node.js 环境中,可以使用 express-session 中间件管理会话数据。

安装依赖

npm install express express-session

配置会话

const express = require('express');
const session = require('express-session');

const app = express();

app.use(session({
  secret: 'your-secret-key', // 用于签名会话 ID 的密钥
  resave: false,             // 强制重新保存会话(即使未修改)
  saveUninitialized: true,   // 强制保存未初始化的会话
  cookie: { secure: false }  // 设置 Cookie 选项(HTTPS 下应设为 true)
}));

存储会话数据

app.get('/set-session', (req, res) => {
  req.session.username = 'JohnDoe';
  res.send('Session data set');
});

读取会话数据

app.get('/get-session', (req, res) => {
  const username = req.session.username;
  res.send(`Session data: ${username}`);
});

销毁会话

app.get('/destroy-session', (req, res) => {
  req.session.destroy((err) => {
    if (err) throw err;
    res.send('Session destroyed');
  });
});

使用 cookie 存储会话数据(前端)

如果需要在不同标签页或浏览器关闭后仍然保留会话数据,可以结合 Cookie 使用。

设置 Cookie

document.cookie = 'username=JohnDoe; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/';

读取 Cookie

const cookies = document.cookie.split(';');
const usernameCookie = cookies.find(c => c.trim().startsWith('username='));
const username = usernameCookie ? usernameCookie.split('=')[1] : null;
console.log(username); // 输出 'JohnDoe'

删除 Cookie

js实现session

document.cookie = 'username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';

注意事项

  • sessionStorage 仅在同一标签页有效,新开标签页或窗口不会共享数据。
  • localStorage 和 Cookie 可以跨标签页共享,但需注意安全性问题(如 XSS 攻击)。
  • 后端会话(如 express-session)通常依赖 Cookie 存储会话 ID,确保设置 securehttpOnly 选项以提高安全性。

标签: jssession
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图形…