JavaScript cookie 设置与获取

news/2024/5/18 15:45:53 标签: base64, javascript, cookie

一、保存cookie

javascript">// 保存cookie
function setCookie (cName, value, expiredays) {
	let exdate = new Date()
	exdate.setDate(exdate.getDate() + expiredays)
	document.cookie = `${cName}=${decodeURIComponent(value)}${expiredays ? ';expires=' + exdate.toGMTString() : ''}`;
}

二、获取cookie

javascript">// 获取cookie
function getCookie (key) {
	if (document.cookie.length > 0) {
		let start = document.cookie.indexOf(key + '=')
		if (start !== -1) {
			start = start + key.length + 1
			let end = document.cookie.indexOf(';', start)
			if (end === -1) end = document.cookie.length
			return unescape(document.cookie.substring(start, end))
		}
	}
	return ''
}

三、使用

javascript">//设置
setCookie('username', 'admin');
setCookie('password', '123456');
//获取
getCookie('username');
getCookie('password');
//清除
setCookie('username', '');
setCookie('password', '');

四、补充:密码加密

密码直接存入cookie,有一定的隐患,虽然cookie一直被诟病。但还是加一层包含,较为妥当。这里使用 Base64。

1、vue项目中安装

npm i js-base64 -S

2、结合cookie使用

javascript">//加载编码
let Base64 = require('js-base64').Base64;
//加密报错
setCookie('password', Base64.encode('123456'));
//解密获取
let password = Base64.decode(getCookie("password"));

 


http://www.niftyadmin.cn/n/582253.html

相关文章

SpriteKit中类似Cocos2D的CCActionSpawn并发方法GroupAction

大熊猫猪侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在Cocos2D中对于并发Action的处理可以使用CCActionSpawn来完成,默认的我们还可以使用自然的方式,比如两次调用runAction来实现相同的效果…

浙江理工大学c语言作业网站,2016年浙江理工大学理学院C语言程序设计复试笔试仿真模拟题...

一、选择题1. 若有以下程序:以下叙述中正确的是( )。 A. 可用S 定义结构体变量 B. 可用T 定义结构体变量 C.S 是struct 类型的变量 D.T 是structS 类型的变量 答:B【解析】S 为结构体类型名,而T 为结构体变量名表。2. 有以下程序&…

CSS 图片等比缩放和拉伸

一、代码 <template><div><!-- 等比缩放 --><div> <div class"img-div"><img class"img-01" src"images/image02.jpg" ></div> <div class"img-div"><img cla…

SpriteKit中为何不要在update方法中测试碰撞

大熊猫猪侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们若要在游戏中做碰撞检测有2种办法,一是利用物理引擎,二是自己写代码做每个Node的碰撞检查. 如果自己写检测代码,将检测代码放在哪里是一个问…

mssql server 常用日期函数

Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上&#xff0c;返回新的 datetime 值 例如&#xff1a;向日期加上2天 select dateadd(day,2,2004-10-15) --返回&#xff1a;2004-10-17 00:00:00.000 …

CreateDirectory和RemoveDirectory的一个陷阱

呵呵~我还在优化我的oj~ 今天在oj评判模块中添加了环境清理的功能&#xff0c;即清理几个存放零时文件的文件夹&#xff0c;虽然还没有碰到过&#xff0c;但我觉得会有以下问题&#xff1a;如果由于操作系统某个操作失误&#xff0c;某些本该删除的零时文件没有删掉&#xff0c…

《Cesium 基础知识点》- ArcGIS MapServer 调用(区分矢量和瓦片)

虽然 ArcGIS MapServer 地址不区分动态图层和瓦片&#xff0c;但还是有差异的&#xff0c;详见《ArcGIS MapServer 区分动态图层(矢量) 和 瓦片》 1. 添加 1.1. 动态图层 全部显示 // 默认显示全部 var layerProvider new Cesium.ArcGisMapServerImageryProvider({url: htt…

《Cesium 基础知识点》- 基于 Cesium1.7x 的地下显示

一、Cesium官方在 1.7x 版中新增了地下模式 版本说明&#xff1a;详见 详细说明&#xff1a;详见 二、知识点 // 重点&#xff1a;关闭碰撞监测&#xff0c;否则无法鼠标中间移到地下 viewer.scene.screenSpaceCameraController.enableCollisionDetection false; 三、效果…