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

  • 双模手机可以用两张电信卡吗(双模手机推荐)(双模手机可以用两张电信卡吗)

    双模手机可以用两张电信卡吗(双模手机推荐)(双模手机可以用两张电信卡吗)

  • 三星s9电池不耐用(三星s9+手机电池不耐用了怎么修复)

    三星s9电池不耐用(三星s9+手机电池不耐用了怎么修复)

  • 手机看不了图片怎么办(手机看不了图片听不了语音怎么办)

    手机看不了图片怎么办(手机看不了图片听不了语音怎么办)

  • nova7pro防水吗(华为nova7pro,防水吗)

    nova7pro防水吗(华为nova7pro,防水吗)

  • 手机poweroff是什么意思(手机显示power off)

    手机poweroff是什么意思(手机显示power off)

  • 比心下了还是会显示在线吗(比心下不了了怎么办)

    比心下了还是会显示在线吗(比心下不了了怎么办)

  • feed流和信息流区别(feed流的表现形式)

    feed流和信息流区别(feed流的表现形式)

  • 抖音获得赞可以提现吗(抖音赞可以一键取消吗)

    抖音获得赞可以提现吗(抖音赞可以一键取消吗)

  • 华为m6可以当笔记本用吗(华为m6的笔可以用matepadpro吗)

    华为m6可以当笔记本用吗(华为m6的笔可以用matepadpro吗)

  • 手机云服务是干什么用的(手机里的云服务是什么意思收费吗)

    手机云服务是干什么用的(手机里的云服务是什么意思收费吗)

  • word图片怎样居中(word中怎样让图片居中)

    word图片怎样居中(word中怎样让图片居中)

  • 华为悬浮球怎么关(华为悬浮球怎么设置关闭)

    华为悬浮球怎么关(华为悬浮球怎么设置关闭)

  • icp和isp的区别(icp sp 区别)

    icp和isp的区别(icp sp 区别)

  • 手机如何把图片背景变透明(手机如何把图片转换成文档)

    手机如何把图片背景变透明(手机如何把图片转换成文档)

  • 中国联通hd什么意思(中国联通hd有什么用)

    中国联通hd什么意思(中国联通hd有什么用)

  • oppo手机实况模式在哪(oppo的实况)

    oppo手机实况模式在哪(oppo的实况)

  • word下划线固定长度(word下划线固定住了怎么办)

    word下划线固定长度(word下划线固定住了怎么办)

  • 全民k歌日榜是怎么排的(全民k歌日榜是怎么评出来的)

    全民k歌日榜是怎么排的(全民k歌日榜是怎么评出来的)

  • 货拉拉运费可以到付吗(货拉拉运费可以找朋友代付吗)

    货拉拉运费可以到付吗(货拉拉运费可以找朋友代付吗)

  • 新手机跑电快是什么原因(新手机跑电快是什么原因造成的)

    新手机跑电快是什么原因(新手机跑电快是什么原因造成的)

  • python深拷贝和浅拷贝的区别(python3深拷贝和浅拷贝)

    python深拷贝和浅拷贝的区别(python3深拷贝和浅拷贝)

  • apple music是什么(apple music 是什么)

    apple music是什么(apple music 是什么)

  • 网站域名是网址吗(网站域名是指什么意思)

    网站域名是网址吗(网站域名是指什么意思)

  • 鸿蒙系统支持第三方手机吗?(鸿蒙系统支持第三方相机吗)

    鸿蒙系统支持第三方手机吗?(鸿蒙系统支持第三方相机吗)

  • Win7纯净版系统网页错误503的解决方法(win7纯净版本)

    Win7纯净版系统网页错误503的解决方法(win7纯净版本)

  • 应纳税所得额高了好还是低了好
  • 税后利润和净利润是一样的吗
  • 税务行政处罚是指
  • 单位如何代个人交社保
  • 厂区地面硬化属于土建还是市政
  • 加班餐费有发票怎么入账
  • 股权变更怎样交契税
  • 递延收益没有应列入哪个科目
  • 补发工资计算公式
  • 取得增值税专用发票
  • 公司拖欠工资还要继续工作吗?
  • 施工企业直接费间接费怎么算
  • 进项税转出的会计处理
  • 上交印花税分录
  • 租车开具的电子发票
  • 多缴增值税怎么退税
  • 税前利润弥补亏损
  • 在王者荣耀里怎么删除好友
  • 存出投资款是什么凭证
  • 商场外面的广告牌叫什么
  • php中mysqli怎么连接数据库
  • 带息应收票据计息时
  • antd 级联多选
  • 零售商品盘点表填写内容
  • 财务人员如何管控费用支出
  • 社会保险个人部分计入什么科目
  • 污水处理增值税税率
  • php获取本机ip地址
  • thinkphp框架怎么用
  • php取mysql查询单条数据
  • react脚手架搭建项目
  • 实际缴纳的增值税是什么意思
  • 购货方享受现金流量吗
  • 固定资产多少钱以上计入固定资产
  • 回购股票并注销影响所有者权益吗
  • 专项应付款如何核算
  • phpcms程序
  • 工厂道路设计规范
  • access里面也暗含了sql
  • 小微企业所得税税率多少
  • 已经认证抵扣的发票怎么红冲
  • sqlserver判断数字
  • persona工具
  • 批发零售进销存软件免费版
  • 房地产会计开发工资高吗
  • 个体户没有税务登记怎么开发票
  • 税后利润分配还要交税
  • 申报前的增值税怎么算
  • 建筑业异地预缴税款怎么纳税申报
  • 企业管理理费包括哪些
  • 其他应付款怎么冲平影响会计利润吗
  • 水电费进项税额转出20%
  • 应付职工薪酬的工资是实发工资还是应发工资
  • 无形资产出资入股的会计处理
  • 材料采购成本包括买价和采购费用
  • 一般纳税人先确认收入吗
  • win7如何共享文件夹给另一台电脑使用
  • 预览版与正式版
  • xp系统怎么打开设置
  • ubuntu系统怎么更新
  • 轻松备份怎么用
  • window7 aero
  • ubuntu安装后怎么启动
  • win7打开文件夹都是独立的窗口
  • win7系统加内存条怎么设置
  • win10声音文件
  • bootstrap基础
  • javascript的相关应用
  • js实现瀑布流效果
  • javascript详细介绍
  • android开发电视app教程
  • js设置页面的scrolltop
  • python utils模块
  • python入坑指南
  • python如何入门
  • 如何在国税网上做企业会计制度备
  • 中石化一键加油周几有优惠
  • 广州市电子税务局怎样跨区申报税务
  • 最近领导故意挑事
  • 江苏省国家税务局总局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设