当前位置:首页 > 网络科技 > JavaScript 管理 Cookie 函数,兼容 secure、samesite 属性

JavaScript 管理 Cookie 函数,兼容 secure、samesite 属性

2年前 (2024-08-27)admin网络科技147

自从拥有 leixue.com 域名后,泪雪旗下的网站都在开始切换域名和做一些改版,在把泪雪网小程序开发完成后,近期又在折腾泪雪个人中心(i.leixue.com)的新版本,那么在开发中子凡我为了更好的提高用户体验以及交互效果,除了精简代码,当然还需要将一些 JavaScript 涉及的功能做些优化才行,这不就在 JavaScript Cookie 中做了一次较大的优化。

利用 JavaScript Cookie 可以做到用户登录时利用 cookie 记住用户名,注册账号或者找回密码时能够本地记忆临时账号及验证码获取的倒计时,避免在不小心刷新后还需要重新输入邮箱获取验证码,同时也减少对邮件服务器资源的浪费,其实子凡觉得这更重要的就是一个简单的用户交互体验的效提升。

废话就不多说,本来只是想在泪雪博客分享一波代码片段而已,下面是创建 cookie、获取 cookie 以及删除 cookie 的三个 js 封装函数,完美的兼容了 HTTPS 下的 cookie secure 属性,当然这里还支持了 samesite 属性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//设置 cookie
var isHttps = 'https:' == document.location.protocol ? true : false;
function setCookie(name,value,timeout){
	var options = { 'secure':isHttps,'max-age':timeout,'samesite':'strict' };
	if(options.expires instanceof Date) { options.expires = options.expires.toUTCString(); }
	let cookies = encodeURIComponent(name) + "=" + encodeURIComponent(value);
	for(let oKey in options){
		let oValue = options[oKey];
		if(oValue){ cookies += "; " + oKey; if(oValue !== true){ cookies += "=" + oValue;} }
	}
	document.cookie = cookies;
}
//获取 cookie
function getCookie(name){
	let matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"));
	return matches ? decodeURIComponent(matches[1]) : null;
}
//删除 cookie
function delCookie(name){
	setCookie(name, '', -1);
}

有必要说明一下,samesite 属性子凡是为了提高安全性和效率所有设置了最高级别的 strict,如果不需要可以修改 strict 为 none 即可,删除参数也可以。

w.haolusi.com

本文链接:https://w.haolusi.com/javascript-cookie.html

扫描二维码推送至手机访问。

版权声明:本文由豪鲁斯兴趣网发布,如需转载请注明出处。

本文链接:https://w.haolusi.com/?id=1891

标签: 设计开发
分享给朋友:

“JavaScript 管理 Cookie 函数,兼容 secure、samesite 属性” 的相关文章

告别焦虑,技术人的“慢功夫”哲学

告别焦虑,技术人的“慢功夫”哲学

我们现在处一个快节奏的时代,每一个行业都在高速发展,我们也常常被告知要抓住每一个机会,快速成长,迅速成功。但对许多技术人来说,所谓的“快”,有时反而会让我们失去平衡,陷入焦虑和迷茫, 常常又进入事倍功半的困境。之前遇到过一位刚入行不久的年轻技术人,他一脸焦虑地问我:“如果我现在不快点提高,是不是以后...

WordPress如何将管理员用户主页改为网站首页

WordPress如何将管理员用户主页改为网站首页

最近在做 WordPress 站群的一些项目测试,主题在调用作者的时候就会链接到作者主页,加上很多时候 WordPress 网站就只会使用一个账户来发布文章,虽然可以通过修改主题代码的方式将作者的链接直接链接到网站首页,但是作为一个优雅的 WordPress 开发者来说,肯定是不会轻易动主题源码的,...

WordPress标签实现追加自定义链接

WordPress标签实现追加自定义链接

WordPress 标签的用处说多不多,说少不少,其中利用 WordPress 标签做聚合页面优化是一种搜索引擎很喜欢的方式,或者说很多搜索引擎相比正文页面而言更喜欢抓取和收录标签页面,其次对于 WordPress 标签的作用就是用于文章关键词调用以及文章内链。那么今天子凡我我将利用几行代码来实现给...

MySQL如何选择utf8mb4_general_ci和utf8mb4_0900_ai_ci字符集排序规则

MySQL如何选择utf8mb4_general_ci和utf8mb4_0900_ai_ci字符集排序规则

最近在做一些关于新项目的规划和测试,那么既然是要做新的项目当然首先要考虑的就是最新的技术标准,也把开发环境都统一升级了一遍,而在做 MySQL 数据库创建的时候就发现了一个小小的变化,本着对技术的执着那么就不得不来一探究竟。正式生产环境本着稳定高于一切的宗旨,所以也就不太可能做到数据库方面的升级保持...

WordPress禁止符号转码和页面提速

WordPress禁止符号转码和页面提速

WordPress 很多时候其实考虑得非常全面,不论是使用体验还是安全性,但是有些时候难免过犹不及,或者是相比安全性而言难免有所取舍,所以无可厚非。这就比如最近我们在泪雪网发布一篇关于 NotePad–这个编辑器的文章时,就发现 WordPress 出于安全性就自动的将两个减...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。