在 WebSocket 连接建立之前进行身份验证时,token 应该如何存储
·
在 WebSocket 连接建立之前进行身份验证时,token 的存储方式有以下几种常见选择:
一、客户端存储
(一)本地存储(LocalStorage)
- 在现代浏览器中,可以使用
LocalStorage来存储 token。LocalStorage是一种键值对形式的存储,数据会一直存储在浏览器中,直到被手动清除或达到存储期限(没有设置期限的情况下,数据会一直存在)。localStorage.setItem('token', 'your_token_value');当需要使用 token 进行身份验证时,可以从
LocalStorage中获取:const token = localStorage.getItem('token');(二)会话存储(SessionStorage)
SessionStorage的工作方式与LocalStorage类似,但存储的数据仅在当前会话期间有效(即只要浏览器处于打开状态,数据就可用;一旦浏览器关闭,数据就会被清除)。sessionStorage.setItem('token', 'your_token_value');(三)Cookie
- 通过设置
Cookie来存储 token。Cookie可以设置过期时间、路径、域名等属性来控制其有效性和作用范围。document.cookie = 'token=your_token_value; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/';二、服务器端存储
(一)数据库
- 将 token 存储在数据库(如 MySQL、MongoDB、Redis 等)中。可以创建一个专门的表或集合来存储用户的 token 以及相关的用户信息和 token 的有效期等。
- 例如,在关系型数据库 MySQL 中,可以创建一个
tokens表来存储:CREATE TABLE tokens ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, token VARCHAR(255), expiration_date TIMESTAMP );(二)缓存服务器
- 使用缓存服务器(如 Redis)来存储 token。Redis 具有高性能和快速存取的特点,非常适合存储需要频繁访问和验证的 token 数据。
const redis = require('redis'); const client = redis.createClient(); client.set('token:user_id', 'your_token_value', 'EX', 3600); // 设置 token 并设置 1 小时后过期您可以根据您的应用需求和架构选择合适的 token 存储方式。
更多推荐

所有评论(0)