vue利用路由控制实现登录功能

2023-11-11

未使用服务器接口,登录信息保存在cookie中,可以实现登录功能
vue交流群203849104

vue使用cookie首先需要安装cookie

npm install js-cookie

然后在router下面的index.js文件中引入

import cookies from 'js-cookie'

增加路由权限

router.beforeEach((to, from, next) => {
  iView.LoadingBar.start()
  if (to.name === 'login') {
    var gourl = '/'
  } else {
    gourl = to.path
  }

  var user = typeof (cookies.get('user'))
  if (to.name === 'login' || to.name === 'register') {
    if (to.meta.title) {
      document.title = to.meta.title
    }
    next()
  } else {
    if (user === 'undefined') {
      router.replace({
        name: 'login',
        query: {redirect: gourl}
      })
    } else {
      window.scrollTo(0, 0)
      if (to.meta.title) {
        document.title = to.meta.title 
      }
      next()
    }
  }
})

router.afterEach(route => {
  iView.LoadingBar.finish()
})

router.beforeEach 是页面加载之前,相反router.afterEach是页面加载之后
这里的gourl 是登陆页面之前的页面,用于登录之后跳转到上一页面,这一点在应用开发中应用的也是比较广泛的,尤其是互动性比较强的应用。
typeof (cookies.get(‘user’)) 是用户cookie保存的用户信息,这里写的比较简单 判断了是否为字符串,可以根据需求自己来写
如果获取cookie中user的值不为string,则页面跳转到登录界面。

loginaction () {
      var redirect = this.$route.query.redirect
      this.$http.post(api.url.login, this.inputval, {emulateJSON: true}).then(
        (response) => {
          if (response.data.code === 'ok') {
            cookies.set('user', response.data.data)
            this.$router.push({ path: redirect })
          } else {
            this.$Message.error(response.data.msg)
          }
        },
        (error) => {
          console.log(error)
        })
    }

loginaction 方法是登录按钮的点击事件
api.url.login 是post请求地址可以换成自己的地址
this.inputal是输入框输入的信息
请求接口返回code为OK则表示登录成功将返回的数据写入cookie中即可
redirect 是登录页面的redirect 参数,也就是跳转到登录页面前一页的地址,那么登录之后还是返回到登录之前的页面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue利用路由控制实现登录功能 的相关文章

  • Windows子系统的安装与使用

    引言 好久没有更新技术博客了 这段时间一直在学习新的知识 涉足大数据技术领域 最近有一些收获 来和大家分享一下 笔者一直用的是windows系统的电脑 但是有时候又需要用到linux系统 对此有3种方案可以实现 电脑安装双系统 安装虚拟机
  • 记录一下kibana启动连接报错问题(kibana server is not ready yet)

    记录一下kibana启动连接报错问题 kibana server is not ready yet 今天启动kibana出现该问题 先去看了看是否是elasticsearch连接出错 启动了容器 docker start elasticse

随机推荐

  • python错误与异常

    一 错误 1 语法错误 num 1 if num gt 1 print num gt 1 系统报错提示 SyntaxError expected 2 逻辑错误 编写业务逻辑错误 3 系统错误 二 异常 1 程序执行过程中出现的未知错误 2
  • 1019 数字黑洞

    给定任一个各位数字不完全相同的 4 位正整数 如果我们先把 4 个数字按非递增排序 再按非递减排序 然后用第 1 个数字减第 2 个数字 将得到一个新的数字 一直重复这样做 我们很快会停在有 数字黑洞 之称的 6174 这个神奇的数字也叫
  • 回文质数Prime Palindromes

    题目描述 因为 151 既是一个质数又是一个回文数 从左到右和从右到左是看一样的 所以 151 是回文质数 写一个程序来找出范围 a b 一亿 间的所有回文质数 输入输出格式 输入格式 第 1 行 二个整数 a 和 b 输出格式 输出一个回
  • Locust压力测试使用总结

    上次做接口压力测试前一直研究使用jmeter 本以为可以拿来使用了 但是真正进行并发接口时 发现jmeter在单机下并发1000个时 台式电脑单机资源早就被使用完 整个jmeter卡得死死的 结果那晚使用jmeter并发失败 幸好之前也准备
  • FFmpeg学习笔记--视频传输的基本概念

    目录 1 容器 container 和文件 file 2 媒体流 stream 3 数据帧 frame 和数据包 packet 4 编解码器 Codec 5 复用 mux 6 解复用 demux 7 码率 bps 和帧率 fps 8 ffm
  • 【Android -- 写作工具】Markdown 代码块

    1 前言 关于代码块 Markdown 作者给出的定义如下 预格式化代码块主要用于在 Markdown 文档中显示源代码风格的内容 相比普通的文本段落 代码块可以保留文字内容的多行换行 缩进等格式 在 Markdown 文档中生成代码块 需
  • Numpy中的(一维)数组和(行列)向量

    Numpy中的 一维 数组和 行列 向量 随笔记录 Numpy的数组和行列向量的区别 随笔记录 Numpy的数组和行列向量的区别 今天做sklearn的datasets diabetes 的实验 做了个操作 diabetes是一个442 1
  • 【FPGA的基础快速入门17------频率计】

    FPGA的基础学习 频率计 频率计简介 等精度频率计 频率计简介 频率计又称为频率计数器 是一种专门对被测信号频率进行测量的电子测量仪器 计数法 直接计数单位时间内被测信号的脉冲数 这种方法测量精度高 速度快 适合不同频率 不同精确度测频的
  • 输入一个四位整数,分别输出组成该四位数的各位数字

    一 代码实现 1 include
  • Spring框架支持哪几种Bean作用域?自动装配Bean有哪些方式?

    Spring框架支持哪几种Bean作用域 spring支持五种Bean作用域 singleton 单例 就是每个spring容器只有一个 实例对象 prototype 多例 一个bean可以定义多个实例 另外三个是在web的Spring A
  • dell服务器启动顺序如何设置_戴尔品牌机怎么设置启动顺序(按F12进bios的)?

    展开全部 这主板非常麻烦 可关了保护 并切换 Legacy启动模式 U盘PE 装完系统 要改回uefi模式 DELL bios操作一32313133353236313431303231363533e59b9ee7ad943133343137
  • 传输线的物理基础(二):信号在传输线中的速度

    铜中电子的速度 信号在传输线上传输的速度有多快 如果人们经常错误地认为信号在传输线上的速度取决于导线中电子的速度 凭着这种错误的直觉 我们可能会想象降低互连的电阻会提高信号的速度 事实上 典型铜线中电子的速度实际上比信号速度慢约 100 亿
  • NLP中的数据增强方法!

    作者简介 大家好我是 uu 人工智能硕博在读 精通python 某大厂nlp算法经历 机器学习 深度学习 自然语言处理 计算机视觉 个人主页 uu主页 觉得uu写的不错的话 麻烦动动小手 点赞 收藏 评论 今天给大家带来的刷题系列是 NLP
  • BUS creator & selector、Mux&Demux

    2 3 总线BUS creator selector Bus Creator 由几路输入信号合成为一条总线信号 Bus Selector 由总线信号中选取需要的一路或几路信号输出 Mux 信号合成 Demux 信号分解 区别 Bus的可选择
  • vue web在线聊天功能实现

    上一篇介绍了vue怎么实现无限滚动窗体 这一篇就具体怎么使用vue实现web在线聊天功能展开深入讨论 对尚且不清楚怎么实现无限滚动窗体的 可前往这里查看 vue和iview实现无限滚动的正确解法 先看看最终实现的效果 实现过程 无限滚动窗体
  • 【ChatGPT进阶】如何使用ChatGPT做知乎好物?

    如果你想通过知乎赚钱 知乎好物是一个不错的选择 门槛很低 而且是一个可以长期 躺赚 的项目 如果你会ChatGPT的话 可以去卷同行 知乎好物是什么 知乎好物是一种在知乎平台上创作内容或回答问题时 使用 好物推荐 功能在内容中插入商品卡片
  • AI绘画StableDiffusion美女实操教程:斗破苍穹-小医仙-天毒女(附高清图下载)

    小医仙 是天蚕土豆所著玄幻小说 斗破苍穹 1 及其衍生作品中的角色 身负厄难毒体 食毒修炼 万毒不侵 通体毒气 这种会无意识地杀死别人的体质让天性善良的小医仙成为人憎鬼厌的天毒女 在萧炎多次帮助下得以控制 出图效果展示 资源整合 今天我们就
  • springboot集成RabbitMQ-超级详细步骤

    本文对应的代码地址 https github com zhangshilin9527 rabbitmq study 前置工作 1 安装rabbitmq 2 登录 地址 http localhost 15672 账号密码 guest gues
  • mybatis学习(31):修改部分字段(有外键,先查询,再修改)

    目录结构 com geyao mybatis mapper BlogMapper类 package com geyao mybatis mapper import java util List import java util Map im
  • vue利用路由控制实现登录功能

    未使用服务器接口 登录信息保存在cookie中 可以实现登录功能 vue交流群203849104 vue使用cookie首先需要安装cookie npm install js cookie 然后在router下面的index js文件中引入