位置: IT常识 - 正文

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

编辑:rootadmin
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文档打开报错,内容有问题)

  • 粘贴自iphone弹窗怎么关闭(粘贴自iphone弹窗什么意思)

    粘贴自iphone弹窗怎么关闭(粘贴自iphone弹窗什么意思)

  • mate30怎么卸载软件(华为mate30怎么卸载)

    mate30怎么卸载软件(华为mate30怎么卸载)

  • 华为nova7se有没有陀螺仪(华为nova7se有没有门禁卡功能)

    华为nova7se有没有陀螺仪(华为nova7se有没有门禁卡功能)

  • 钉钉全员群怎么加入(钉钉全员群怎么解除)

    钉钉全员群怎么加入(钉钉全员群怎么解除)

  • ppt涂鸦笔在哪里(ppt涂鸦背景图片)

    ppt涂鸦笔在哪里(ppt涂鸦背景图片)

  • word空半字距离怎么设置(字间距空半格)

    word空半字距离怎么设置(字间距空半格)

  • 小米10青春版屏幕多大(小米10青春版屏幕)

    小米10青春版屏幕多大(小米10青春版屏幕)

  • 天猫详情页尺寸(天猫详情页尺寸大小)

    天猫详情页尺寸(天猫详情页尺寸大小)

  • vivox23进水怎么处理(vivox21进水)

    vivox23进水怎么处理(vivox21进水)

  • iwatch4能一直亮屏吗(apple watch series 4常亮)

    iwatch4能一直亮屏吗(apple watch series 4常亮)

  • 华为平板m6中间按键没反应(华为平板m6中间按键失灵)

    华为平板m6中间按键没反应(华为平板m6中间按键失灵)

  • 华为荣耀和畅享有什么区别(华为荣耀和畅享和nova有什么不一样)

    华为荣耀和畅享有什么区别(华为荣耀和畅享和nova有什么不一样)

  • 域名系统dns的功能是(域名dns的功能)

    域名系统dns的功能是(域名dns的功能)

  • 怎么取消搜索候选(取消搜索结果)

    怎么取消搜索候选(取消搜索结果)

  • 抖音怎么让指定人看到(抖音怎么让指定人看不到我的作品)

    抖音怎么让指定人看到(抖音怎么让指定人看不到我的作品)

  • 6splus屏幕尺寸(6splus屏幕尺寸和6plus)

    6splus屏幕尺寸(6splus屏幕尺寸和6plus)

  • ps如何移动图层(ps如何移动图层组)

    ps如何移动图层(ps如何移动图层组)

  • 电脑进不了系统一直重启(电脑进不了系统停留在主板界面)

    电脑进不了系统一直重启(电脑进不了系统停留在主板界面)

  • 如何恢复快手本地作品(我的快手恢复)

    如何恢复快手本地作品(我的快手恢复)

  • 己发布的抖音怎么更换音乐(己发布的抖音怎么换音乐)

    己发布的抖音怎么更换音乐(己发布的抖音怎么换音乐)

  • ipad怎么看电池寿命(ipad怎么看电池损耗)

    ipad怎么看电池寿命(ipad怎么看电池损耗)

  • 极速版抖音怎么拍视频(极速版抖音怎么提现到支付宝)

    极速版抖音怎么拍视频(极速版抖音怎么提现到支付宝)

  • 手机腾讯qq黑名单在哪(手机qq8.5.0黑名单)

    手机腾讯qq黑名单在哪(手机qq8.5.0黑名单)

  • Vue Grid Layout -️ 适用Vue.js的栅格布局系统(保姆级使用教程)

    Vue Grid Layout -️ 适用Vue.js的栅格布局系统(保姆级使用教程)

  • 常用激活函数activation function(Softmax、Sigmoid、Tanh、ReLU和Leaky ReLU) 附激活函数图像绘制python代码(常用激活函数及其导数)

    常用激活函数activation function(Softmax、Sigmoid、Tanh、ReLU和Leaky ReLU) 附激活函数图像绘制python代码(常用激活函数及其导数)

  • 公司购入的财务怎么做账
  • 小规模纳税人批发机动车
  • 股票价值和内部价值
  • 无形资产摊销是当月还是下月
  • 什么叫残保金减免
  • 合并报表无形资产摊销时间
  • 递延收益负债类科目
  • 房地产业营改增
  • 购买的车位是否有产权证
  • 机器不生产计提折旧吗
  • 资本公积在现金流量表哪里体现
  • 货发出款未收的会计分录怎么做?
  • 美元转到中国账户可不可以取人民币
  • 月底结转应交税费怎么弄
  • 总资产周转率计算公式用不用乘100%
  • 企业所得税汇算清缴账务处理
  • 应征增值税不含税销售额(3%征收率)怎么算
  • 普通股资本成本计算方法
  • 母公司向分公司收取管理费
  • 发票章盖住备注烂备注的日期,看不清
  • 企业所得税能否核定征收
  • 进出口商品应该符合哪个国家的标准
  • 企业暂估收入申报,未开发票,几年以后要开票如何处理
  • 销项负数发票会计分录怎么写
  • 企业注销固定资产处理
  • 财政票据税务局能查到吗
  • 保安费用分录
  • win11怎么设置最佳能效模式
  • 销售回款率怎么计算
  • 周转材料属于什么会计分录
  • php 输出
  • 银行存款利息是按月结还是按年
  • 企业所得税扣除标准表
  • eclipse php wamp配置教程
  • 金蝶数量金额怎么输入
  • vue2计算属性和vue3的计算属性的区别
  • 补开发票对公司有什么影响
  • 办公费用会计科目怎么写
  • 企业所得税中哪些属于免税收入
  • 小规模纳税人采购需要发票吗
  • 劳务报酬可以专项附加扣除吗
  • 快递公司账务处理流程及方法总结
  • 阿里云主机安装软件
  • 低值易耗品还需要录入明细吗
  • 水运企业会计核算办法
  • 有限责任公司分类
  • 负数发票开票条件?
  • 农村土地征用补偿价格
  • 多栏式日记账核算组织程序优缺点
  • 贸易公司退税计算方法选哪一种
  • 现金折扣与商业折扣的计算
  • 零余额账户银行日记账
  • 伙食费占支出比例
  • 本月的费用
  • 期末账面余额是什么意思
  • 公司如何注销营业执照
  • Win7/Win8.1/Win10的UAC对话框“是”点不了的原因及解决方法
  • WINDOWS体验指数5.1
  • 电脑系统文件受损
  • xp系统自带浏览器打不开网页
  • 利用内置管理工具的方法
  • centos安装软件教程
  • 今后64位Win10 Mobile将是未来重点
  • ubuntu系统中怎么安装mathematica13.1.0
  • 怎么删除隐藏文件夹win 10
  • centos默认字体
  • windows10已激活
  • 微信小程序实战入门 第2版
  • Activity的四种启动模式和onNewIntent()
  • android拍照
  • jq判断浏览器
  • nodemoudles可以复制粘贴别的电脑运行程序吗
  • 关于javascript中数组的说法不正确
  • express如何使用
  • python3.6安装pil
  • android下载图片并保存到本地
  • 废旧物资税务风险评估
  • 企业营商环境包括哪些内容
  • 农村复耕复产
  • 刚注册了一家深圳公司
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设