位置: IT常识 - 正文

vue设置cookie和路由守卫(vue set-cookie)

发布时间:2024-01-11
vue设置cookie和路由守卫

推荐整理分享vue设置cookie和路由守卫(vue set-cookie),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue如何设置cookie,vue js-cookie,vue js-cookie,vue如何设置cookie,vue set-cookie,vue如何设置cookie,vue中cookie的用法,vue如何设置cookie,内容如对您有帮助,希望把文章链接给更多的朋友!

vue项目中登录页面用户登录成功后,会把用户信息存储到cookie中,然后跳转进入首页,当用户没有登录时,直接输入页面地址会经过路由守卫检测cookie中是否存在用户信息,如果不存在,重定向到登录页让用户进行登录。接下来从配置cookie方法开始。

首先在项目中新建util/cookie.js文件作为存放cookie方法的js

在cookie.js中写进如下代码,该代码封装的三个方法,setCookie:存储cookie; getCookie:读取cookie; clearCookie:删除指定cookie;最后把这三个方法导出,便于全局调用,每行代码具体什么意思可观看以下教程:cookie教程一,cookie教程二,讲解的非常详细。

[](javascript:void(0)😉

/** * @description 保存cookie * @param {Object} json 需要存储cookie的对象 * @param {Number} days 默认存储多少天 */function setCookie(json, days) { // 设置过期时间 let data = new Date( new Date().getTime() + days * 24 * 60 * 60 * 1000 ).toUTCString(); for (var key in json) { document.cookie = key + "=" + json[key] + "; expires=" + data; }}/** * @description 获取cookie * @param {String} name 需要获取cookie的key */function getCookie(name) { var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")); if (arr != null) { return unescape(arr[2]) } else { return null }}/** * @description 删除cookie * @param {String} name 需要删除cookie的key */function clearCookie(name) { let json = {}; json[name] = ''; setCookie(json, -1)}export default { setCookie, getCookie, clearCookie}

[](javascript:void(0)😉

然后在main.js中引入刚刚写好的cookie.js,并通过Vue.prototype设置cookie这个字段作为全局变量

引入完毕之后就可以在任意页面中通过 this.cookie.方法名(值)来增删查cookie。

this.cookie.setCookie() //存cookie

this.cookie.getCookie() //读cookie

this.cookie.clearCookie() //删cookie

首先在项目中创建登录页Login.vue编写登录页面,登陆成功之后通过this.cookie.setCookie往cookie中存入用户信息。

[](javascript:void(0)😉

<template> <div> <form action> <div> 账号: <input type="text" v-model="name" /> </div> <div> 密码: <input type="password" v-model="password" /> </div> <div> <button @click="login" type="submit">登录</button> </div> </form> </div></template><script>export default { data() { return { name: "", password: "" }; }, methods: { login() { if (!this.name) { alert("请填写账号"); return; } if (!this.password) { alert("请输入密码"); return; } if(this.password&&this.name){ // 以json格式传给setCookie方法存入信息,方法里面会循环遍历该json以单个数据存储的方式,多次存入cookie中      // 注:cookie不支持直接以json的方式存入 let loginInfo={ LoginName:this.name, openId:"asfafsfsfsdfsdfsdfdsf" } // 调用setCookie方法,同时传递需要存储的数据,保存天数 this.cookie.setCookie(loginInfo,7) alert("登录成功") // 跳转到首页 this.$router.replace('/') } } }};</script>

[](javascript:void(0)😉

登陆成功之后再浏览器的cookie中可以看到存进去的LoginName,openId,以及他们的过期时间。

vue设置cookie和路由守卫(vue set-cookie)

登录成功我们跳转到了home.vue页面,通过this.getCookie( “LoginName” )获取一下登录名。

然后点击退出的时候需要清除一下cookie,然后返回登录页。

点击退出之后清除cookie,并且跳转到了登录页面,现在去查看cookie

发现里面是空白的。

至此我们第一步基本完成了,接下在跳转时要验证cookie里面是否有登录信息,如果没有则不让跳转并且跳转到登录页。也就是要用到路由守卫。

上一篇我们已经封装好了cookie方法,登录成功之后也可以吧用户信息存到cookie中,接下来需要在router/index.js中引入一下cookie.js文件

然后继续添加以下代码

/*\* beforeEach:从一个页面跳转到另外一个页面时触发\* to:要跳转的页面\* from:从哪个页面出来\* next:决定是否通过*/router.beforeEach((to, from, next) => { // 如果跳转的页面不存在,跳转到404页面 if(to.matched.length===0){ next('/404') } if (cookie.getCookie("openId")) { next() } else { if (to.path === "/Login") { next() } else { next('/Login') } }})

[](javascript:void(0)😉

router.beforeEach意思是在router.index设置了一个全局守卫,只要发生页面跳转,会执行里面的代码,首先先去判断跳转的页面是否存在,如果不存在进到404页面,然后调用cookie.getCookie()方法读取用户信息,如果不存在代表没有登录,用next(‘/Login’)进入Login登录页面进行登录,如果读取到了用户信息,不做拦截直接放行。

扩展

全局后置钩子

router.afterEach((to,from)=>{}),表示从当前页面离开时进行判断,一般用来跳转页面时提示用户是否离开该页面。

路由独享的守卫beforeEnter:(to,from,next)=>{},用法与全局守卫一致。只是,将其写进其中一个路由对象中,只在这个路由下起作用。

本文链接地址:https://www.jiuchutong.com/zhishi/292364.html 转载请保留说明!

上一篇:Ngo Dong河两岸的稻田美景,越南宁平省 (© Jeremy Woodhouse/Getty Images)(如何知道是干皮还是油皮)

下一篇:vue导出word(vue导出word文档打开报错,内容有问题)

  • acfun和哔哩哔哩关系(ACFUN和哔哩哔哩哪个好)

    acfun和哔哩哔哩关系(ACFUN和哔哩哔哩哪个好)

  • 飞行模式是什么意思可以接电话吗(苹果手机飞行模式是什么)

    飞行模式是什么意思可以接电话吗(苹果手机飞行模式是什么)

  • wps文献引用怎么做(wps文献引用怎么生成)

    wps文献引用怎么做(wps文献引用怎么生成)

  • 华为荣耀20i支持双4g吗(华为荣耀20i支持鸿蒙系统吗)

    华为荣耀20i支持双4g吗(华为荣耀20i支持鸿蒙系统吗)

  • 声卡消原音功能有什么用(声卡消原音为什么消不完)

    声卡消原音功能有什么用(声卡消原音为什么消不完)

  • c语言文件后缀(c语言文件后缀名是啥)

    c语言文件后缀(c语言文件后缀名是啥)

  • 网页版微信聊天记录保存在哪里(网页版微信聊天记录存在哪里)

    网页版微信聊天记录保存在哪里(网页版微信聊天记录存在哪里)

  • 红米k30有液冷散热吗(红米k30有液冷散热器吗)

    红米k30有液冷散热吗(红米k30有液冷散热器吗)

  • 苹果七手机为什么用着很卡(苹果七手机为什么不能语音)

    苹果七手机为什么用着很卡(苹果七手机为什么不能语音)

  • 韩众平板是哪个公司生产的(韩众平板是哪个公司的)

    韩众平板是哪个公司生产的(韩众平板是哪个公司的)

  • 奔腾g3240相当于i几(奔腾g3220 相当于)

    奔腾g3240相当于i几(奔腾g3220 相当于)

  • 电脑显示屏开机亮一下就不亮了怎么回事(电脑显示屏开机后黑屏怎么回事)

    电脑显示屏开机亮一下就不亮了怎么回事(电脑显示屏开机后黑屏怎么回事)

  • 苹果型号mq开头什么意思(苹果型号mq开头的是什么机型)

    苹果型号mq开头什么意思(苹果型号mq开头的是什么机型)

  • 天猫魔投二维码在哪(天猫魔投怎么连接手机投屏)

    天猫魔投二维码在哪(天猫魔投怎么连接手机投屏)

  • 怎么下载无损音乐到u盘(怎么下载无损音乐)

    怎么下载无损音乐到u盘(怎么下载无损音乐)

  • 华为浮窗设置在哪关(华为手机浮窗开关在哪里设置)

    华为浮窗设置在哪关(华为手机浮窗开关在哪里设置)

  • 华为mate30pro怎么看屏幕厂家(华为mate30pro怎么升级鸿蒙系统)

    华为mate30pro怎么看屏幕厂家(华为mate30pro怎么升级鸿蒙系统)

  • 买苹果手机送蓝牙耳机吗(iphone送蓝牙耳机吗)

    买苹果手机送蓝牙耳机吗(iphone送蓝牙耳机吗)

  • 附近的人为什么看不到我(附近的人为什么没人打招呼)

    附近的人为什么看不到我(附近的人为什么没人打招呼)

  • x21怎么设置nfc(x21怎么设置中文)

    x21怎么设置nfc(x21怎么设置中文)

  • 华为p30有红外遥控吗(华为p30有红外遥感吗)

    华为p30有红外遥控吗(华为p30有红外遥感吗)

  • 在系统日历中不显示“其他日历”(日历怎么不能添加事件了)

    在系统日历中不显示“其他日历”(日历怎么不能添加事件了)

  • 微星主板bios更新教程(微星主板bios更新黑屏)

    微星主板bios更新教程(微星主板bios更新黑屏)

  • enbiei.exe是什么病毒程序吗 enbiei进程的信息查询(encore是什么软件)

    enbiei.exe是什么病毒程序吗 enbiei进程的信息查询(encore是什么软件)

  • 股息交个人所得税怎么交
  • 自制农产品采摘机器设备
  • 销售商品的成本计入什么科目
  • 活动现金红包
  • 出口退税销项大于进项,需要交税吗
  • 记账时显示期初未建账
  • 餐饮公司收到的拍摄服务票做什么费用
  • 投资公司的利息支出可抵扣吗
  • 免抵调增值税是否缴纳附加税
  • 增值税专用发票开错了咋办
  • 转让法人要注意什么
  • 污泥处置中心所得税优惠政策
  • 税款负担方式是什么
  • 出口申报时限
  • 银行存款余额调节表保管期限
  • 增值税电子发票没有发票专用章
  • 借方和贷方是什么意思银行存款
  • 上月留抵的增值税在哪查询
  • 待认证进项税额转出会计分录
  • 坏账收回的会计处理方法
  • u盘中装系统
  • 如何恢复回收站永久删除的文件
  • 增值税专票销售额
  • 工商年报单位缴费基数怎么算出来
  • 实物资产股权投资包括
  • 小微企业一般纳税人
  • 如何解决windows蓝屏问题
  • win10新装系统我的电脑在哪
  • movie maker是什么软件
  • 贷款利息不能抵扣进项税
  • 补缴增值税怎么做账
  • 通过mac地址查找ip的协议
  • 金融机构通过
  • 支付的招标代理费计入成本还是费用
  • 残疾人保障金工资总额包括年终奖吗
  • 移动端页设计
  • 企业销售固定资产房屋都要交什么税
  • 事业单位结余资金管理办法
  • 城市维护建设税是什么意思
  • 小规模纳税人附加税会计分录
  • phpcms怎么用
  • PostgreSQL教程(二):模式Schema详解
  • PHP MongoDB GridFS 存储文件的方法详解
  • pytest unittest
  • sql server row_number over
  • 城镇土地使用税征收标准及计算方法
  • 预算外的收入
  • 注册资本认缴制的利弊
  • 补报印花税税需要提供什么材料
  • 税控盘减免税款分录
  • 计提商业承兑汇票会计分录怎么写
  • 员工给兄弟公司的感谢信
  • 计提工资的凭证要附单据吗
  • 土地作为无形资产还是固定资产
  • 有形资产的例子
  • 注册资本和实收资本相等吗
  • 银行开户存款流程
  • 企业会计准则第4号固定资产
  • 企业会计制度设计论文题目
  • Linux下mysql 5.6.17 安装图文教程
  • 如何删除多余的空白表格
  • win10系统崩溃怎么修复开不了机
  • centos 安装svn
  • dotnetfx35
  • .exe是啥程序
  • win10关闭defender方法
  • win7 注册表 ahci
  • wind8桌面
  • unity加载gif
  • 安卓游戏引擎
  • node.js+mysql
  • android studio unity3d
  • js原型使用场景
  • js写后端用什么框架
  • 增值税税控开票软件密码不知道了怎么办
  • 安徽税务网上申报领取发票
  • 发票查验结果不一致的原因有哪些
  • 阜阳市税务局地址
  • 河北省发票查询真伪查询国税
  • 课税对象与征税对象一样吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号