js-cookie的使用

admin2024-01-02 09:30:01

js-cookie 是一个简单、轻量级的JavaScript API,用于处理cookie。如果您希望使用 js-cookie 来设置带有过期时间的token,您可以按照以下步骤进行:

首先确保您的项目中已经包含了 js-cookie 库。如果尚未添加,可以通过npm或者直接在HTML中包含它的CDN链接来添加。

通过npm安装:

npm install js-cookie

然后在您的JavaScript文件中引入:

import Cookies from 'js-cookie';

或者,如果您不是在使用module bundler的情况下,在您的HTML文件中通过CDN引入:

<script src="https://cdn.jsdelivr.net/npm/js-cookie@3/dist/js.cookie.min.js"></script>

创建一个通用函数来设置带有过期时间的token:

import Cookies from "js-cookie";
/**
* 设置带有过期时间的token
* @param {string} token - 要设置的token字符串
* @param {number} expireDays - token到期的天数
*/
function setToken(token, expireDays) {  Cookies.set('token', token, { expires: expireDays });
}
/**
* 获取存储的token
*/
function getToken() {  return Cookies.get('token');
}
/**
* 删除存储的token
*/
function removeToken() {  Cookies.remove('token');
}

在上面的代码中,setToken 函数接受一个token字符串和过期时间(天数)。使用 Cookies.set 方法设置cookie,其中 'token' 是cookie名,expireDays 是一个数字,代表cookie将在多少天后过期。getToken 方法是用来获取存储的token,而 removeToken 方法用于删除token。

示例用法:

// 设置一个名为'token'的cookie,7天后过期
setToken('your-secure-token', 7);
// 读取cookie中的token
var token = getToken();
console.log(token);
// 移除cookie中的token
removeToken();

请记住,cookie存在安全限制,例如,如果您正在使用的是安全或HTTPS页面,需要设置 secure 选项,同时最好还要设置 SameSite 属性以提高安全性。

Cookies.set('token', token, {  
     expires: expireDays,  
     secure: true,      // 只有在 https 连接时才发送cookie
     sameSite: 'strict' // 严格的同站点策略,以减少CSRF风险
 });

确保在实际的生产环境中,根据您的具体需要来调整安全设置。