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

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

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

自从拥有 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 属性” 的相关文章

In terms of equipment acquisition, what improvements can be made?

In terms of equipment acquisition, what improvements can be made?

In terms of equipment acquisition in World of Warcraft, Players often discuss some areas that can be improved to enhance the gaming experien...

Machine Learning: Transforming Data into Intelligence

Machine Learning: Transforming Data into Intelligence

Machine Learning (ML) is a transformative technology that leverages algorithms and statistical models to enable computers to learn from and make...

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

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

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

百度正式下线“快速收录”功能,VIP可以申请“快速抓取”权限

百度正式下线“快速收录”功能,VIP可以申请“快速抓取”权限

最近可以说是站长们一片哀嚎,清明节前刚经历一次大的波动恢复没两天,让后百度又一次性的在清明节再次送走了,目前又开始缓慢的在恢复,但是似乎情况也并不是很妙。就在这时,百度搜索资源平台发布了一则“关于升级平台「快速收录」工具的通知”的公告,意思就是正式下线快速收录功能,换新上线一个叫做“快速抓取”的工具...

WordPress如何移除登录界面中英文语言切换框

WordPress如何移除登录界面中英文语言切换框

其实早在 WordPress 5.9 版本开始,WordPress 默认登录界面就增加了语言切换选项, 其目的就是允许用户自己选择要使用的语言登录后台。这个功能对于多语言网站或是国际性站点可能还有点用,但是对于国内用户来说就显得有些多余。最近子凡在做更深度的 WordPress 优化,同时也为了丰富...

MYSQL字符集有哪些

MYSQL字符集有哪些

MySQL 中的字符集是用来确定数据库中字符数据的编码方式,它决定了如何存储和检索数据。MySQL 中常用的字符集:UTF8:UTF-8 是一种 Unicode 字符编码方式,它可以表示世界上大部分的文字字符。MySQL 中的 UTF8 字符集最多只能存储 3 字节的 UTF-8 编码字符,...

发表评论

访客

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