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

  • 12306怎么绑定学生资质(12306怎么绑定学生证)

    12306怎么绑定学生资质(12306怎么绑定学生证)

  • 华为荣耀30pro耳机孔在什么位置(华为荣耀30pro耳机)

    华为荣耀30pro耳机孔在什么位置(华为荣耀30pro耳机)

  • 华为微信语音通话黑屏(华为微信语音通话录音在哪里找得到)

    华为微信语音通话黑屏(华为微信语音通话录音在哪里找得到)

  • 退货要自己付运费吗(退货要自己付运费吗过了七天无理由)

    退货要自己付运费吗(退货要自己付运费吗过了七天无理由)

  • 电脑如何连接网线(电脑如何连接网络打印机)

    电脑如何连接网线(电脑如何连接网络打印机)

  • 支付宝取消预约火车票(支付宝取消预约转账)

    支付宝取消预约火车票(支付宝取消预约转账)

  • 快手直播间抢红包有限制吗(快手直播间抢红包神器)

    快手直播间抢红包有限制吗(快手直播间抢红包神器)

  • p30拍太阳会烧镜头吗(华为p30拍太阳怎么调参数)

    p30拍太阳会烧镜头吗(华为p30拍太阳怎么调参数)

  • 陌生电话一接通就挂断(陌生电话接通却不说话就断了)

    陌生电话一接通就挂断(陌生电话接通却不说话就断了)

  • 魅族手机数据自动打开是怎么回事(魅族手机自己开数据)

    魅族手机数据自动打开是怎么回事(魅族手机自己开数据)

  • 抖音加好友是不是就是关注(抖音加好友是不是真的)

    抖音加好友是不是就是关注(抖音加好友是不是真的)

  • 华为曲屏容易碎吗(华为曲屏的屏幕容不容易碎)

    华为曲屏容易碎吗(华为曲屏的屏幕容不容易碎)

  • 如何关闭qq随心贴(如何关闭qq随心贴展示)

    如何关闭qq随心贴(如何关闭qq随心贴展示)

  • qq开了录音权限还说不了话(qq录音权限打开了还是没声音)

    qq开了录音权限还说不了话(qq录音权限打开了还是没声音)

  • vivo手机wifi满格却连不上网(vivo手机wifi满格却连不上网怎么办)

    vivo手机wifi满格却连不上网(vivo手机wifi满格却连不上网怎么办)

  • 微信群消息免打扰没有用(微信群消息免打扰)

    微信群消息免打扰没有用(微信群消息免打扰)

  • 怎么通过微信号查qq号(怎么通过微信号查出电话号码)

    怎么通过微信号查qq号(怎么通过微信号查出电话号码)

  • 如何申请第二个微信号(如何申请第二个淘宝账号)

    如何申请第二个微信号(如何申请第二个淘宝账号)

  • iphone6如何打开nfc功能(iphone6如何打开OTG功能)

    iphone6如何打开nfc功能(iphone6如何打开OTG功能)

  • 怎么做公众号微信推文(怎么做公众号微信推文发送链接)

    怎么做公众号微信推文(怎么做公众号微信推文发送链接)

  • 小米怎么取消仅在wifi下载(小米怎么取消仅自动续费)

    小米怎么取消仅在wifi下载(小米怎么取消仅自动续费)

  • nex什么时候上市的(nex新品)

    nex什么时候上市的(nex新品)

  • 手机截屏的快捷键是什么(手机截屏快捷键)

    手机截屏的快捷键是什么(手机截屏快捷键)

  • 韩剧tv怎么看直播(韩剧tv如何看直播)

    韩剧tv怎么看直播(韩剧tv如何看直播)

  • linux查看文件的后几行(文件查看 如何显示最后几行 ,某几行)(linux查看文件的权限)

    linux查看文件的后几行(文件查看 如何显示最后几行 ,某几行)(linux查看文件的权限)

  • 聊聊Discuz怎么修改帖子标题的字符长度限制(discuz论坛账号)

    聊聊Discuz怎么修改帖子标题的字符长度限制(discuz论坛账号)

  • 加工企业税收优惠政策
  • 发票没有纳税人识别号怎么重开
  • 借款人和还款人不相同的情况下逾期还款会影响哪方信用
  • 其他权益工具投资公允价值变动
  • 建筑企业利润率低的原因
  • 什么合同不需要做结算
  • 不动产融资租赁税率是多少
  • 银行承兑汇票到期日期怎么算
  • 对于子女继承父母的评价
  • 会计凭证整理的要求有哪些
  • 文化传媒公司取名字不带文化
  • 附加税减免税会计处理怎么做?
  • 无形资产撤资要交税吗
  • 营改增房租增值税税率
  • 海关年检需要什么资料
  • 收入与应收款
  • 银行手续费回单可以作为报销
  • 国税登记流程
  • 公司做账挂名字
  • 投资利税率计算器在线计算
  • 担保贷款造成的损失可以税前扣除吗?
  • 处置交易性金融资产的交易费用计入
  • Intel 酷睿i5 8300H
  • windows11怎么添加打印机驱动
  • 如何弥补以前年假的问题
  • 当前页面的脚本发生错误是否要在此页面上继续运行脚本
  • php 字符串函数
  • 合同已无法履行
  • 其他应付款转营业外收入需要交增值税吗
  • PHP:curl_copy_handle()的用法_cURL函数
  • win10蓝牙驱动怎么安装程序
  • vue使用pdf.js
  • html转xhtml
  • 管家婆实物仓库怎么用
  • php框架介绍
  • 非常好看的头像
  • 其他收益在资产负债表哪点
  • 日用品属于哪个类型
  • 工会保障工作的主要任务有哪些
  • 救护车车船税优惠政策
  • 预付费卡开票
  • 公司注销清算时个人股东如何计算个人所得税
  • 用商品抵债的分类有哪些
  • 材料暂估入库时需要考虑增值税进项税吗
  • 暂估主营业务成本怎么冲销
  • 旅客运输进项抵扣加计扣除怎么算
  • 收到的成本票怎么做账
  • 月末应交增值税借方余额期末该怎么处理
  • 疫情防控重点保障物资免征增值税
  • 固定资产的原价减去预计净残值等于什么
  • 绿化工程苗木成活率交工标准
  • 滞纳金冲留底税额怎么算
  • 不动产进项税额转出
  • 收到销项负数发票怎么做分录
  • 金税盘发票认证怎么操作流程
  • 长期待摊费用怎么记账
  • 企业购买黄金如何入账
  • 进项票是服务费怎么做会计分录
  • 红字冲销凭证怎么登明细账
  • 有备而来有备而去
  • windows升级10
  • fsm32.exe是什么进程 有什么作用 fsm32进程查询
  • win7关闭xhci
  • windows更新后风扇不转
  • dx12最新版本
  • 深入剖析kubernetes pdf
  • oracle创建emp表
  • extjs 为某个事件设置拦截器
  • 谈谈jQuery Ajax用法详解
  • opencv人脸识别模型训练
  • nodejs实战教程
  • jquery元素选择器有哪些
  • jquery-easyui-1.3.3
  • android安卓应用程序窗口化
  • 自定义view ondraw
  • js实现生成随机的圆
  • python3 with语句
  • python入坑指南
  • 个人所得税app查不到工资记录
  • 江苏国税,地税怎么交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设