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

  • 441625身份证是哪里(4416s拆机)(441624身份证是哪里)

    441625身份证是哪里(4416s拆机)(441624身份证是哪里)

  • vivos12录屏在哪里(vivos1手机录屏在哪里)

    vivos12录屏在哪里(vivos1手机录屏在哪里)

  • excel工作表与工作区域名字之间要以什么符号连接(工作表与excel表的区别)

    excel工作表与工作区域名字之间要以什么符号连接(工作表与excel表的区别)

  • 华为otg功能怎么打开

    华为otg功能怎么打开

  • 手机信号格上有个叉(手机信号格上有个问号)

    手机信号格上有个叉(手机信号格上有个问号)

  • 机身串号是什么意思(机身串号能查出来什么)

    机身串号是什么意思(机身串号能查出来什么)

  • 微信为什么不能登录(微信为什么不能扫码付款)

    微信为什么不能登录(微信为什么不能扫码付款)

  • 苹果nfc扫描没反应(苹果nfc扫描没反应怎么办)

    苹果nfc扫描没反应(苹果nfc扫描没反应怎么办)

  • p40支持nfc功能吗(p40lite支持nfc)

    p40支持nfc功能吗(p40lite支持nfc)

  • 荣耀30pro有无线充电吗(荣耀30pro可以无线)

    荣耀30pro有无线充电吗(荣耀30pro可以无线)

  • 为什么手机录不了声音(为什么手机录不了视频)

    为什么手机录不了声音(为什么手机录不了视频)

  • 手机自带软件误删怎么恢复(手机自带软件被误删?看这里一键找回!)

    手机自带软件误删怎么恢复(手机自带软件被误删?看这里一键找回!)

  • opporeno3pro什么时候上市的(opporeno3pro上市多长时间了)

    opporeno3pro什么时候上市的(opporeno3pro上市多长时间了)

  • 手机wifi密码忘了怎么办(手机Wifi密码忘了怎么办)

    手机wifi密码忘了怎么办(手机Wifi密码忘了怎么办)

  • 抖音个人认证能解除嘛(抖音个人认证能卖货吗)

    抖音个人认证能解除嘛(抖音个人认证能卖货吗)

  • 闲鱼淘宝二手能退货吗(闲鱼淘宝二手能卖吗)

    闲鱼淘宝二手能退货吗(闲鱼淘宝二手能卖吗)

  • 恢复出厂设置相册里的照片还有吗(恢复出厂设置相册会清空吗)

    恢复出厂设置相册里的照片还有吗(恢复出厂设置相册会清空吗)

  • 微信登录微博怎么注销(微信登录微博怎么用账号密码)

    微信登录微博怎么注销(微信登录微博怎么用账号密码)

  • pr添加字幕如何移动(pr添加字幕如何保持一个大小)

    pr添加字幕如何移动(pr添加字幕如何保持一个大小)

  • ios13怎么退出app store(ios13怎么退出apple store)

    ios13怎么退出app store(ios13怎么退出apple store)

  • 美图秀秀怎么发文章(美图秀秀怎么发布自己的配方)

    美图秀秀怎么发文章(美图秀秀怎么发布自己的配方)

  • 网易云怎么剪音乐(网易云怎么剪音频)

    网易云怎么剪音乐(网易云怎么剪音频)

  • Win7系统防止锁定的主页被恶意篡改的方法(怎么让win7不锁定)

    Win7系统防止锁定的主页被恶意篡改的方法(怎么让win7不锁定)

  • 【Java编程指南】方法(java编程入门基础教程)

    【Java编程指南】方法(java编程入门基础教程)

  • 小规模纳税人每月不超过10万
  • 个人物品出售要交哪些税
  • 复合计征消费税例题
  • 租房子没有
  • 负数发票可以作废不
  • 盈利幼儿园和非盈利幼儿园的政策
  • 一般纳税人的进项税额计入成本吗
  • 房产税的原值是如何确定的
  • 存货转固定资产的时点
  • 再保后赔款支出
  • 外汇税收怎么缴纳增值税
  • 实收资本需要计提印花税吗
  • 未抄报税可以报税吗
  • 法院一直扣着我的钱不给可以起诉他吗
  • 损益类科目计入哪个表
  • 办公室的取暖费怎么做会计分录
  • 材料采购计入什么会计科
  • 税务返还手续费发放给个人需要合并扣税吗
  • 民间非营利组织会计制度
  • 国税定额发票有效期是多长时间
  • 增值税进项税已转出后能否再抵扣
  • 小微企业免征税额
  • 对公账户提取备用金可以每天提现嘛
  • 如何防止虚开发票 等舞弊行为?
  • 资产负债表和利润表的利润不一致
  • 注册公司之后需要交社保吗
  • 所得税费用为负数是什么意思
  • 未开发土地可否转给子公司
  • 利息调整摊销的经济意义
  • 企业没有土地证
  • 怎样调整以前年度多计的收入
  • packethsvc.exe - packethsvc是什么进程 有什么用
  • php源码怎么上传到服务器
  • 奥维尔的瓦兹河岸
  • 可供分配利润在财报哪里
  • 工程施工和工程结算科目
  • 收回以前年度款项如何处理
  • javascript - localStorage 本地存储(新增、删除、修改)使用教程
  • 图幅翻译
  • pdclient
  • SQLite教程(四):内置函数
  • 汇率差的差额计算方式
  • 硬盘录像机开发票属于哪一类
  • 纳税人应按照当期可抵扣进项税额的10%
  • 应交税费明细科目设置最新
  • 物流公司卖车合法么
  • 加油费属于什么报销费用
  • 工程外经证预缴税款计税方法
  • 股本减少是利好吗
  • 保险公司代扣的车船使用税分录
  • 在建工程发生的运费计入什么科目
  • 公司转给其他公司的投资款
  • 建筑材料租赁公司
  • 公司承担员工的个税怎么做账
  • 民营医院的发票在哪里领
  • 什么资产减值可以转回
  • 管理会计与核算会计的区别
  • 无发票 入账
  • windows xp windows
  • 远程删除
  • win10预览版和正式版区别
  • mac怎么删除系统软件
  • win7能不能安装vs2019
  • nginx 虚拟ip
  • 访问win10
  • javascript数据结构
  • cocos2d CC_CALLBACK_0/1/2/3之间的区别
  • unity判断点击ui
  • 3ds怎么用3ds格式
  • node分页接口
  • Eclipse和AndroidStudio常用快捷键对比
  • JavaScript实现Base64编码转换
  • rhel7.6安装
  • nginx日志按天切割
  • 点击android
  • [置顶]马粥街残酷史
  • 三亚国税局各区领导班子
  • 增值电信发票
  • 计算车辆购置税公式
  • 北京市生育津贴发放标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设