关于vue登录注册,并保持登录状态,是vue玩家必经之路,网上也有很多的解决方法,但是有一些太过于复杂,新手可能会看的一脸懵逼,现在给大家介绍一种我自己写项目在用而且并不难理解的一种方法。

项目中有一些路由是需要登录才可以进入的,比如首页,个人中心等等
有一些路由是不需要登录就可以进入,比如登录页,注册页,忘记密码等等
那如何判断路由是否需要登录呢?就要在路由JS里面做文章

在router.js中添加meta区分
比如登录注册页面,不需要登录即可进入,那么我们把meta中的isLogin标志设置为false

{//登录path: '/login',component: login,meta: {isLogin: false}
},
{//注册path: '/register',component: register,meta: {isLogin: false}
},

而在首页我们需要登录才能进入,那么我们把meta中的isLogin标志设置为true

{//首页path: '/home',component: home,meta: {isLogin: true},
}

这样我们就为进入各个路由是否需要登录做了区分。

接下来我们在login.vue中修改登录后状态
我们使用axios向后台发起登录请求

this.$axios.post("/xxx/login", {user:name,password:pwd}).then(data => {//登录失败,先不讨论if (data.data.status != 200) {//iViewUi的友好提示this.$Message.error(data.data.message);//登录成功} else {//设置Vuex登录标志为true,默认userLogin为falsethis.$store.dispatch("userLogin", true);//Vuex在用户刷新的时候userLogin会回到默认值false,所以我们需要用到HTML5储存//我们设置一个名为Flag,值为isLogin的字段,作用是如果Flag有值且为isLogin的时候,证明用户已经登录了。localStorage.setItem("Flag", "isLogin");//iViewUi的友好提示this.$Message.success(data.data.message);//登录成功后跳转到指定页面this.$router.push("/home");}});

Vuex里面我是这样写的(如果项目不需要Vuex,那么直接使用HTML5储存就可以了):

export const store = new Vuex.Store({// 设置属性state: {isLogin: false,},// 获取属性的状态getters: {//获取登录状态isLogin: state => state.isLogin,},// 设置属性状态mutations: {//保存登录状态userStatus(state, flag) {state.isLogin = flag},},// 应用mutationsactions: {//获取登录状态setUser({commit}, flag) {commit("userStatus", flag)},}
})

重点来了~,在mian.js里

router.beforeEach((to, from, next) => {//获取用户登录成功后储存的登录标志let getFlag = localStorage.getItem("Flag");//如果登录标志存在且为isLogin,即用户已登录if(getFlag === "isLogin"){//设置vuex登录状态为已登录store.state.isLogin = truenext()//如果已登录,还想想进入登录注册界面,则定向回首页if (!to.meta.isLogin) {//iViewUi友好提示iView.Message.error('请先退出登录')next({path: '/home'})}//如果登录标志不存在,即未登录}else{//用户想进入需要登录的页面,则定向回登录界面if(to.meta.isLogin){next({path: '/login',})//iViewUi友好提示iView.Message.info('请先登录')//用户进入无需登录的界面,则跳转继续}else{next()}}});router.afterEach(route => {window.scroll(0, 0);
});

这样就已经完成了Vue的登录注册,当用户关闭浏览器或者第二天再次进入网站,用户依旧可以保持着登录的状态直到用户手动退出登录。

Tips:用户退出只需要localStorage.removeItem(“Flag”)即可

Vue登录注册,并保持登录状态相关推荐

  1. 【C语言】简易登录注册系统(登录、注册、改密、文件操作)

    概述: 本登录注册系统通过使用C语言中的结构体.函数.文件操作以及指针等,设计与实现了一个小型用户登录注册系统的登录.注册.修改密码等基本功能. 本系统全部功能基本运行良好.用户界面友好.操作简单.使 ...

  2. 用vue实现注册页面、登录页面、主页之间跳转并保持登录状态【完整代码】

    文章目录 前言 一.页面的简单实现 1.登录页面 2.注册页面 3.主页(显示个人信息) 二.逻辑实现 1.localStorage的使用 2.功能实现 登录 注册 主页 路由配置文件 总结 前言 本 ...

  3. 尚医通项目101-123:前台用户系统、登录注册、邮箱登录

    开始时间:2022-05-30 课程链接:课程链接:[尚医通] 前端页面 需要完成医院等级.地区查询.医院列表.医院名称模糊查询等功能 按等级查询 按地区查询 模糊查询 并能跳转到具体详情页面 跳转到 ...

  4. php简单论坛登录注册,php简单登录注册验证

    列表页 //连接数据库 $db = new MySQLi('localhost','root','','z_1032'); !mysqli_connect_error() or die('连接失败') ...

  5. 博客项目学习笔记十二:登录注册功能(登录)

    博客项目目录: 请戳这里 准备 需求:实现用户登录功能,登录之后,跳转到首页,并且页面信息由游客状态变为用户状态 1.引入shiro依赖包 <dependency><groupId& ...

  6. php js实现登录注册,JavaScript实现登录注册验证

    学习需要坚持,堕落了一星期,学也不是,玩也不对,今天终于跑到图书馆来学习. 言归正传,今天要做的就是登录注册页面的验证和与数据库连接的操作.这里用的是JQ和layer插件,在前面的文章应该有提到过,不 ...

  7. 【C#桌面应用】第四节:制作简单的登录注册模拟窗口-登录部分的模拟

    步骤一.工具箱中选择按钮 步骤二.根据上一节所演示的按钮名称修改方式进行修改按钮的名称 步骤三.添加用户名和密码的输入框和名称. 工具箱中,选择label文本及textBox1输入框的控件.

  8. Vue实战篇一: 使用Vue搭建注册登录界面

    系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...

  9. vue-cli 登录注册的实现

    本文章给大家介绍使用vue.js完成简单的登录注册功能 功能概览 未登录状态 登录界面,登录用户不存在 提示用户进行注册 前往注册页面进行注册 注册成功后自动跳转到浏览博客页面 可以看到这时候数据表中 ...

  10. Java Web实现登录注册(超详细附代码)

    Java Web实现登录注册(超详细附代码) 文章目录 Java Web实现登录注册(超详细附代码) 1.前言 2.登录注册设计流程 3.注册的数据流程 4.登录的数据流程 5.部分代码的展示 5.1 ...

最新文章

  1. 装饰模式(Decorator)
  2. 外文翻译 《How we decide》赛场上的四分卫 第三节
  3. python基础代码-Python基础(代码)
  4. linux系统硬盘数据恢复软件下载,Linux硬盘数据恢复软件
  5. 第四章 治病法要(1)
  6. 全国计算机等级考试题库二级C操作题100套(第45套)
  7. 慎用ToLower和ToUpper,小心把你的系统给拖垮了
  8. cordic ip核 vivado_Xilinx Vivado CORDIC IP求解atan 反正切
  9. TCP 三次握手的意义
  10. lnmp 清除mysql日志,军哥LNMP 如何关闭 Mysql 日志,并且删除 mysql-bin.0000*日志文件...
  11. AnnotationUtils
  12. Python入门--字符串的查询操作,find,rfind,index,rindex
  13. 实用的Python库
  14. c# 扩展方法奇思妙用高级篇三:Enumerable.CastT 应用
  15. 华为固件解包工具linux,华为官方APP固件解包工具
  16. 扎克伯格:锻造一只硕大无朋的能力“碗”
  17. Nvidia nvenc cuvid + ffmpeg 硬编解码
  18. CPA十二--期末汇兑损益的处理(转载)
  19. Windows驱动开发WDM (1) - 基本结构
  20. pandas实战-2012美国总统竞选赞助分析

热门文章

  1. 只有程序员能看懂的十个笑话 2014-08-05 16:07 54人阅读 评论(0) 收藏...
  2. poj 1260 动态规划
  3. asmx迷10分钟升级成wcf熟手指南
  4. UVA11942 Lumberjack Sequencing【Ad Hoc】
  5. POJ NOI0105-42 画矩形
  6. MySQL 基础 —— DQL(数据查询)
  7. 【笔试/面试】—— 奇葩 C/C++ 语法题(二)
  8. Tricks(五)—— Python 返回所有符合条件的下标
  9. STL::算法::常见算法(二)
  10. 计算几何常用算法及numpy仿真