细讲前端设置cookie, 储存用户登录信息

细讲前端设置cookie

  • 引言
  • 正文
    • 一、设置cookie
    • 二、查看cookie
    • 三、删除cookie
    • 四、封装cookie操作
  • 结束语

引言

我们都知道如果想做一个用户登录并使浏览器保存其登录信息,使得用户下次再访问网页的时候无需再次进行登录操作,我们需要用到 cookies , 今天我们就来讲讲前端如何给客户端设置 cookie

正文

cookie 只有在服务环境下,才能设置,所以如果要尝试练习设置cookie的话,可以使用webstorm编辑器, 它内部自带服务环境,如果用别的编辑器的小伙伴的话,先自己搭一个简单的服务环境哦~

一、设置cookie

设置 cookie 其实很简单,只需要这样一行代码

<script>document.cookie = 'name=张三'
</script>

我们来看看浏览器上 cookie 的信息, 可以看到图上显示该cookie到期时间就是会话结束,即关闭浏览器 cookie 清除,这是因为我们在设置cookie时,只设置了 cookie的值,可没设置到期时间。
在这里插入图片描述

但是我们知道 cookie 是用来保存用户的登录信息的, 我们不能让 cookie 一直在浏览器上存在,需要给 cookie 设置一个到期时间, 接下来我们来看这样一段代码

<script>let data = new Date().getTime()   //先将此时的时间转化为毫秒let new_data = new Date(data + 7*24*60*60*1000)  //将过期时间设置为7天后// toUTCString() 是将时间根据世界时转换为字符串document.cookie = 'name=张三;' + 'expires=' + new_data.toUTCString()
</script>

我们来看一下设置了过期时间后的cookie 是一个什么样的情况
在这里插入图片描述
明显可以看到,此时浏览器上的 cookie 有了一个过期时间, 所以我们再一次重启浏览器, 这个 cookie 还是存在的

注意:这里补充一点,我们如果想要设置多条 cookie , 我们必须一条一条设置,不能批量设置,例如如果要设置两条cookie的话:

<script>let data = new Date().getTime()   //先将此时的时间转化为毫秒let new_data = new Date(data + 7*24*60*60*1000)  //将过期时间设置为7天后//设置第一条 cookiedocument.cookie = 'name=张三;' + 'expires=' + new_data.toUTCString()//设置第二条 cookiedocument.cookie = 'age=19;' + 'expires=' + new_data.toUTCString()
</script>

二、查看cookie

那么我们如何查看浏览器上的cookie呢?这就非常简单了

<script>console.log(document.cookie)</script>

可以看到返回的是一串字符串, 每个cookie由分号隔开
在这里插入图片描述
如果我们想要获取cookie中某个单独的 cookie,我们可以用正则进行匹配

<script>// name=张三 ; age=19let re = new RegExp("\s?" + "name" + "=([^;]+)(;|$)")console.log(document.cookie.match(re)[1])</script>

我们来看一下输出的值:
在这里插入图片描述
这样就得到了我们想要查询的单个cookie值

三、删除cookie

设置cookie是设置了一个cookie值并给它一个过期时间,这样 cookie才不会因为关闭浏览器而立马失效。所以删除 cookie 我们只需要给该cookie设置一个比现在时间还早的时间让cookie过期。

<script>let data = new Date().getTime()   //先将此时的时间转化为毫秒let old_data = new Date(data - 24*60*60*1000) //将过期时间设为24小时前document.cookie = 'name=张三;' + 'expires=' + old_data.toUTCString()
</script>

我们只需要给我们需要删除的 cookie 设置一个过期时间为比现在的时间还早的时间,就可以删除这个cookie
在这里插入图片描述
删除后重新打开网页,我们可以看到 名称为 name 的 cookie 已经被删除了

四、封装cookie操作

操作cookie有这么多方法, 我们对他们进行封装, 方便我们使用他们。

  • 封装设置cookie的函数
<script>//设置cookiefunction setCookies(obj, limitTime) {let data = new Date( new Date().getTime() + limitTime*24*60*60*1000 ).toUTCString()for(let i in obj) {document.cookie = i + '=' + obj[i] + ';expires=' + data}}</script>

让我们来使用一下setCookies函数

// 第一个参数为对象,用键值对的形式传入我们想设置的cookie名和值
// 第二个参数为过期时间,单位为天
setCookies({name: '张三',age: 19,like: '羽毛球'}, 7)
  • 封装查看cookie函数
//查看cookiefunction searchCookie(cookieName) {let re = new RegExp("\s?" + cookieName + "=([^;]+)(;|$)")return document.cookie.match(re)[1]}

让我们来使用一下 searchCookie 函数

// 该函数只有一个参数,即我们需要查询的cookie名称,然后返回一个值
let cookieValue = searchCookie(name)
console.log(cookieValue)// 张三
  • 删除cookie
//删除cookiefunction removeCookies(cookieList) {let data = new Date(new Date().getTime() - 24*60*60*1000).toUTCString()for(let i in cookieList) {document.cookie = cookieList[i] + '= ;' + 'expires=' + data}}

让我们来使用一下 removeCookies 函数

//该函数只有一个参数,传入一个数组,每个元素为我们想要删除的cookie名
removeCookies(['name', 'age'])

结束语

好了,前端设置cookie的简单实用就讲到这里了, 看完的小伙伴可以赶紧自己动手试一试啦, 不要一看就会,一做就废哦~ 我们下个文章再见吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352243.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Cookie

Cookie&#xff1a;客户端对象 1&#xff09;什么是Cookie Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户电脑上保存信息并且随后再取回它。 举例来说&#xff0c;一个Web站点可能会为每一个访问者产生一个唯一的ID&#xff0c;然后以Cookie文…

cookie设置

各位大佬周末好&#xff0c;又到我们最喜欢的知识交流环节   今天我们一起来看一下cookie设置的相关知识   首先让我们看下什么是cookie。cookie是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客…

2018 年一月联考逻辑真题

2018 年一月联考逻辑真题 三、逻辑推理&#xff1a;第 26-55 小题&#xff0c;每小题 2 分&#xff0c;共 60 分。下列每題给出的A.、 B.、C.、D.五个选项中&#xff0c;只有一项是符合试题要求的。请在答题卡上将所选项的字母涂黑。 真题&#xff08;2018-26&#xff09;-翻译…

搜索算法(四) 广度优先搜素算法

一、BFS bfs一层一层地遍历图或树&#xff0c;一般用队列实现&#xff0c;可以计算距离目标的步数。 二、例题 1&#xff09; 力扣https://leetcode.cn/problems/shortest-bridge/ 这道题实际是计算两个岛屿之间的最短距离&#xff0c;可以先用dfs搜索到第一个岛屿并且记录第…

关于万物悦享推广案例

关于万物悦享推广案例 项目介绍 万物悦享是一家改变传统消费模式的公司&#xff0c;致力于让消费者在衣食住行都能把消费变成开心享受的事情。该公司通过消费增值、绿色积分、12倍通证强制出局、卷轴和撸实现这一目标。在通证经济下&#xff0c;消费者可以通过获得通证再赚回…

Python字典及用法详解

Python中的字典&#xff08;Dictionary&#xff09;是一种无序、可变的数据类型&#xff0c;用于存储键&#xff08;Key&#xff09;和值&#xff08;Value&#xff09;之间的映射关系。字典是一种高效的数据结构&#xff0c;可以用于快速查找和检索数据。 1.创建字典 可以使…

人事项目开发记录-登录模块

人事项目开发记录 后端接口实现 后端接口实现 后端权限认证采用Spring Security实现&#xff08;本小节中大量知识点与第10章的内容相关&#xff0c;需要读者熟练掌握第10章的内容&#xff09;&#xff0c;数据库访问使用MyBatis&#xff0c;同时使用Redis实现认证信息缓存。因…

Alertmanager的pod如何添加标签(label)

在Alertmanager.spec.podMetadata字段下添加&#xff0c;如下图&#xff1a;

蘑菇街购物商城

P148-P151 项目创建 项目我用脚手架3创建&#xff1a;vue creat supermall (这个项目名字是supermall)后面配置直接选Babel 运行项目&#xff1a;npm run serve(因为我们观察创建好的项目的初始文件目录&#xff0c;没有config,说明这个使用脚手架3创建的&#xff0c;可以去查…

蘑菇街服务器信息,蘑菇街开放平台

一、授权方式 为保证用户数据的安全性&#xff0c;若您的应用已完成与蘑菇街开放平台对接&#xff0c;需要获取一些与用户紧密相关的信息(如订单、商品、促销等)&#xff0c;需要征得用户的同意&#xff0c;获得用户的授权许可。蘑菇街开放平台采用国际通用的OAuth2.0标准协议&…

仿蘑菇街界面(2)

上一篇博客&#xff0c;博客地址http://blog.csdn.net/itbailei/article/details/38561297把基本的主界面框架已经搭建完毕&#xff0c;我们采用的基本框架为fragment进行页面之间的切换&#xff0c;底部菜单采用的是RadioButton。今天我们来重点来仿照一下第一个底部菜单“爱逛…

仿蘑菇街界面应用(1)

看到郭霖大神仿微信主界面的博客&#xff0c;在佩服大神文笔犀利、讲解详尽、代码风骚之余&#xff0c;也想在上班无所事事时&#xff0c;找点有意思的东西玩玩&#xff0c;蘑菇街作为中国最大女性购物社区&#xff0c;其APP的设计水平也毋庸置疑的&#xff0c;最近博客将连续来…

实现蘑菇街首页效果

打算出一个系列&#xff0c;专治现在市面上各种app的各种滑动不服系列&#xff0c;解决各种滑动冲突问题&#xff0c;现在已经发现了9种样式&#xff0c;打算一个一个一一破解&#xff0c;这是第一篇。 今天给大家带来的是高仿蘑菇街的首页&#xff0c;现在这种页面的格式很流…

设备指纹系列--基础篇

基础概念 618还没开始&#xff0c;但是又好像已经结束了…在这种电商大促的大节日前&#xff0c;电商行业客户一般会提前找到合适的设备指纹产品&#xff0c;去防止被“薅秃”。因为&#xff0c;黑灰产拥有专业的设备牧场&#xff0c;通过使用模拟器、刷机改机等手段&#xff…

仿蘑菇街个人主页

效果图&#xff1a; 看到效果图&#xff0c;第一想到的大致布局是一个scrollview嵌套一个viewpage&#xff0c;viewpage里面有一两个fragment或者写成一个fragment。但是fragment肯定包含两个布局&#xff0c;一个是含有图片(gridview)的listview&#xff0c;另一个布局是只含有…

App竞品分析报告:美丽说VS蘑菇街

1.产品概况 iOS App Store中国区iPhone免费-生活类排名&#xff08;最近3个月&#xff09; 数据来源&#xff1a;ann9.com 蘑菇街排名基本稳定在Top 10至20之间&#xff0c;美丽说在8月下旬后基本游离在Top 30外。 2015年6月活跃用户数比对-iOS端 数据说明&#xff1a;MAU为月…

社会化购物:Pinterest,Fancy还是美丽说,蘑菇街?

转自&#xff1a;网站分析在中国 原文地址&#xff1a;http://www.chinawebanalytics.cn/social-shopping-pinterest-or-fancy/ 【每期一句】越强烈的网络效应&#xff0c;越接近成功。 【前言】这篇文章是应 的邀请所做。很高兴能有机会与几年前一样&#xff0c;分析一个细分行…

仿蘑菇街项目

引言 仿蘑菇街的Vue.js项目是我学习vue.js做的第一个项目&#xff0c;今天来重温一下项目实现的功能&#xff0c;记录一下&#xff0c;方便以后查看。首先需要创建项目&#xff0c;本项目采用cli-3脚手架创建项目&#xff0c;采用默认安装模式&#xff0c;没有安装vue-router和…

高仿蘑菇街欢迎页

####蘑菇街欢迎页 ####高仿效果 这里这里…Demo下载地址 #####前言 本文将介绍如何对蘑菇街欢迎页效果进行分析&#xff0c;拆分&#xff0c;并一步步实现1个高仿版本&#xff0c;最重要的设计思路包括以下2点&#xff1a; 1.ViewPager切换时&#xff0c;通过offset偏移量动…

美丽说蘑菇街首页效果(UITableView和UIScrollerView联动)

作为一名菜鸟iOS开发程序员&#xff0c;第一次写文章&#xff0c;有点小激动&#xff01;进入正题&#xff0c;最近项目中有个需求&#xff0c;类似美丽说蘑菇街首页效果&#xff0c;在网上找了一些资料后自己研究了下终于搞定了&#xff01; 先看效果&#xff1a; 接下来详细…