js-cookie第三方库的简单使用

js-cookie第三方库的简单使用

js-cookie官网

1、下载

npm i js-cookie

2.全局挂载

在main.js中

import Cookies from "js-cookie";

3.使用

直接使用

在当前页面引用

import Cookies from "js-cookie";
//创建cookie
Cookies.set('key', 'value', { expires: 7 });//创建有效期为7天的cookie
Cookies.set("username", this.loginForm.username, { expires: 30 });
Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });

//获取cookie
const value = Cookies.get('key'); // 获取指定key 对应的value
const allvalue = Cookies.get(); // 获取所有value
const username = Cookies.get("username");
const password = Cookies.get("password");
const rememberMe = Cookies.get('rememberMe')

//删除cookie
Cookies.remove('key');//删除普通的cookie
Cookies.remove('name', { path: '' }); // 删除存了指定页面path的cookie
Cookies.remove("username");
Cookies.remove("password");
Cookies.remove('rememberMe');

封装后使用

在utils文件夹下创建一个.js文件

import Cookies from "js-cookie";//导入了一个名为js-cookie的第三方库,用于操作浏览器的Cookie

const TokenKey = "Admin-Token";//存储token的Cookie键名

const ExpiresInKey = "Admin-Expires-In";//过期时间

export function getToken() {//从浏览器的Cookie中获取token值
  return Cookies.get(TokenKey);
}

export function setToken(token) {//将token值存储到浏览器的Cookie中
  return Cookies.set(TokenKey, token);
}

export function removeToken() {//从浏览器的Cookie中移除token值
  return Cookies.remove(TokenKey);
}

export function getExpiresIn() {//从浏览器的Cookie中获取存储的token过期时间。如果获取不到过期时间,则返回默认值-1。
  return Cookies.get(ExpiresInKey) || -1;
}

export function setExpiresIn(time) {//将token过期时间存储到浏览器的Cookie中。
  return Cookies.set(ExpiresInKey, time);
}

export function removeExpiresIn() {//从浏览器的Cookie中移除存储的token过期时间
  return Cookies.remove(ExpiresInKey);
}

引入

import { getToken, setToken, setExpiresIn, removeToken } from '@/utils/auth'
// 登录
        Login({ commit }, userInfo) {
            const username = userInfo.username.trim()
            const password = userInfo.password
            const code = userInfo.code
            const uuid = userInfo.uuid
            return new Promise((resolve, reject) => {
                login(username, password, code, uuid).then(res => {
                    let data = res.data
                    setToken(data.access_token)//创建cookie,存储token值
                    commit('SET_TOKEN', data.access_token)
                    setExpiresIn(data.expires_in)
                    commit('SET_EXPIRES_IN', data.expires_in)
                    resolve()
                }).catch(error => {
                    reject(error)
                })
            })
        },
 // 刷新token
        RefreshToken({ commit, state }) {
            return new Promise((resolve, reject) => {
                refreshToken(state.token).then(res => {
                    setExpiresIn(res.data)//将token过期时间存储到浏览器的Cookie中。
                    commit('SET_EXPIRES_IN', res.data)
                    resolve()
                }).catch(error => {
                    reject(error)
                })
            })
        },
// 退出系统
        LogOut({ commit, state }) {
            return new Promise((resolve, reject) => {
                logout(state.token).then(() => {
                    commit('SET_TOKEN', '')
                    commit('SET_ROLES', [])
                    commit('SET_PERMISSIONS', [])
                    removeToken()从浏览器的Cookie中移除token值
                    resolve()
                }).catch(error => {
                    reject(error)
                })
            })
        },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 iframe 中嵌套第三方页面时,如果需要在该页面中设置或获取 cookie,需要注意以下几点: 1. 父页面和子页面必须同源,即协议、域名和端口号必须完全一致。 2. 如果子页面是通过 HTTPS 协议进行访问的,那么父页面也必须通过 HTTPS 协议进行访问,否则会受到浏览器的安全限制而无法进行 cookie 的设置和获取。 3. 在设置 cookie 时,需要将 cookie 的 domain 属性设置为当前域名或其父域名,以便在子域名下也能够访问到该 cookie。 4. 在设置 cookie 时,需要将 cookie 的 path 属性设置为当前路径或其父路径,以便在子路径下也能够访问到该 cookie。 例如,在父页面中通过 JavaScript 动态创建一个 iframe 并嵌入一个第三方页面: ```html <html> <head> <title>父页面</title> </head> <body> <iframe id="myIframe" src="http://third-party.com"></iframe> <script> var iframe = document.getElementById('myIframe'); iframe.onload = function() { // 在子页面中设置 cookie iframe.contentDocument.cookie = 'name=value; domain=domain.com; path=/'; }; </script> </body> </html> ``` 在子页面中可以通过 JavaScript 获取和设置 cookie: ```html <html> <head> <title>子页面</title> </head> <body> <script> // 获取 cookie var cookie = document.cookie; console.log(cookie); // 设置 cookie document.cookie = 'name=value; domain=domain.com; path=/'; </script> </body> </html> ``` 需要注意的是,在通过 JavaScript 设置 cookie 时,需要在 domain 和 path 属性中指定正确的值,以便在整个域名或路径下都能够访问到该 cookie。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值