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

  • 黑鲨4s支持无线充电吗(黑鲨4s支持无线充吗)

    黑鲨4s支持无线充电吗(黑鲨4s支持无线充吗)

  • 华为手机怎样解除桌面布局已锁定(华为手机怎样解锁屏幕)

    华为手机怎样解除桌面布局已锁定(华为手机怎样解锁屏幕)

  • ps动作面板在哪(ps动作面板的使用方法)

    ps动作面板在哪(ps动作面板的使用方法)

  • safari浏览器无法安装描述文件(safari浏览器无法打开网页、尚未连接互联网是什么情况)

    safari浏览器无法安装描述文件(safari浏览器无法打开网页、尚未连接互联网是什么情况)

  • 为什么华为手机的应用锁只能用一次(为什么华为手机自动关机重启)

    为什么华为手机的应用锁只能用一次(为什么华为手机自动关机重启)

  • 知乎主要是干什么用的(知乎是干什么的,能赚钱吗)

    知乎主要是干什么用的(知乎是干什么的,能赚钱吗)

  • 美图秀秀照片怎么保存在手机相册(美图秀秀照片怎么去水印手机上操作)

    美图秀秀照片怎么保存在手机相册(美图秀秀照片怎么去水印手机上操作)

  • 荣耀30pro尺寸(荣耀30pro尺寸多少)

    荣耀30pro尺寸(荣耀30pro尺寸多少)

  • 快手网名怎么改不了显示已被注册(快手网名怎么改成快手用户)

    快手网名怎么改不了显示已被注册(快手网名怎么改成快手用户)

  • jmm一al10是什么型号(jmm-al10是什么型号)

    jmm一al10是什么型号(jmm-al10是什么型号)

  • iphone连接蓝牙音乐没声音(苹果手机连接蓝牙播放音乐为什么声音小)

    iphone连接蓝牙音乐没声音(苹果手机连接蓝牙播放音乐为什么声音小)

  • 微信不点开看不到信息怎么回事(微信不点开看不到信息提示)

    微信不点开看不到信息怎么回事(微信不点开看不到信息提示)

  • 分布式数据存储是什么意思(是google的分布式数据存储)

    分布式数据存储是什么意思(是google的分布式数据存储)

  • nova5有呼吸灯吗(nova5呼吸灯在哪)

    nova5有呼吸灯吗(nova5呼吸灯在哪)

  • 苹果xsmax是不是2k屏

    苹果xsmax是不是2k屏

  • 荣耀9x有没有智能语音(荣耀9x有没有智慧多窗)

    荣耀9x有没有智能语音(荣耀9x有没有智慧多窗)

  • p20微信语音断触原因(p20手机微信语音时容易退出)

    p20微信语音断触原因(p20手机微信语音时容易退出)

  • safari无痕模式安全吗(safari无痕模式什么意思)

    safari无痕模式安全吗(safari无痕模式什么意思)

  • ipone哪里设置学生模式(苹果手机如何设置学生模式)

    ipone哪里设置学生模式(苹果手机如何设置学生模式)

  • 华为stf一al10什么型号(stf_al10华为什么型号)

    华为stf一al10什么型号(stf_al10华为什么型号)

  • 苹果手机笔记在哪里(苹果的笔记)

    苹果手机笔记在哪里(苹果的笔记)

  • 如何恢复微信语音聊天记录(如何恢复微信语言聊天)

    如何恢复微信语音聊天记录(如何恢复微信语言聊天)

  • 插上U盘电脑无法开机怎么回事(插上U盘电脑无法启动怎么回事)

    插上U盘电脑无法开机怎么回事(插上U盘电脑无法启动怎么回事)

  • 计提本月个人所得税
  • 计提环境保护税怎么计算
  • 建筑企业简易计税可以开专票吗
  • 免税农产品发票怎么做账
  • 所得税营业成本包括税金及附加吗
  • 企业的开办费
  • 季度的工会经费计税依据
  • 免费赠送货物出租合同
  • 证券公司清算交收
  • 天然气安装工程施工劳务协议
  • 折扣零售商是什么意思
  • 工程设计企业符合增值税抵减政策吗
  • 技术咨询合同包括就特定技术项目提供
  • 小微企业增值税减免账务处理
  • 收到保险公司财产理赔款怎么做账
  • 垫资的利息的合法区间
  • 季度不超30万需计提增值税吗
  • 股东投资设备一定要评估吗
  • 已抵扣未入账的红字发票
  • 增值税发票开具错误重开该怎么做会计分录?
  • 计提增值税的账务处理小规模
  • 汽车发票抵扣联需要盖章吗
  • 临时工工资单怎么做
  • 怎么打开资源管理器
  • windows10显示未激活怎么办
  • 如何自定义桌面图标排列
  • 电脑屏发黄怎么调正常哪
  • linux runit
  • 国有资产无偿划转协议
  • 利用的拼音
  • 元宇宙产业链
  • 汇算清缴补充公告
  • ipcrm命令
  • 给员工期权和给股票的区别
  • 微服务框架图
  • 集合框架有何好处
  • 金蝶k3固定资产如何入账
  • 行政单位预算外收入有哪些
  • 生产过程报废和返工产生的成本
  • 退伍军人企业所得税优惠
  • 帝国cms wordpress
  • 投资进来的钱怎么取出来
  • mysql修改表结构会锁表吗
  • mongodb too many open files
  • 印花税核定征收比例取消了吗
  • 清包工方式建筑服务
  • 小规模企业每月收入多少可以不纳税
  • 固定资产的货币时间价值
  • 其他货币资金的六个内容
  • 企业会计准则在建工程转固定资产
  • 管理费用主要核算哪些内容
  • 清算中的资产损失
  • 控制成本的优点
  • 诉讼费可以退回私账嘛
  • 自产产品用于捐赠是否要确认收入
  • 金蝶旗舰版的数据怎么在标准版打开
  • 分析企业盈余状况
  • 小规模纳税人中标一般计税
  • Windows 8.1下MySQL5.7 忘记root 密码的解决方法
  • 数据库的行和列的叙述
  • centos6.10安装教程
  • 任务管理器已被管理员禁用怎么办
  • 下载windows vista
  • torch.cuda.set_device
  • mac闹钟app
  • win7自带的软件
  • windows8内存
  • linux命令行技巧
  • unity3ds
  • node.js开发指南
  • Linux进程通信(IPC)方式简介
  • linux如何创建守护进程
  • react jss
  • 阿里面试题和答案
  • js设置密码长度
  • bootstrap-
  • unity3d摄像机视角
  • unity cpu优化
  • js dom方法
  • 纽约消费税多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设