退出登录及路由守卫实现

news/2024/10/23 7:20:34/

编写logout函数,通过封装好的get向退出地址发送请求,成功后删除当前的token,并返回登陆页面:

function logout(success,failure=defaultFailure){get("/api/auth/logout",()=>{deleteAccessToken()ElMessage.success("退出登录成功,欢迎您再次使用")success()},failure)
}

记得将logout get post导出,暴露给组件。

在index.vue中编写退出按钮与对应的方法:

<script setup>
import {logout} from "@/net";
import router from "@/router";
function userLogout(){logout(()=>{router.push("/")})
}
</script><template>
<div><el-button @click="userLogout">退出登录</el-button>
</div>
</template><style scoped></style>

退出后转至登录页面。

在router中添加index导航页面的路由:

path:'/index',name:'index',component:()=>import('@/views/welcome/IndexView.vue'),}

在这里插入图片描述
在这里插入图片描述

退出登录后token被删除
**加粗样式**

此时输入index可以直接访问登陆后界面,需要配置路由守护:

router.beforeEach((to,from,next)=>{const isUnauthorized=unauthorized()//如果用户已经登录要去登录界面,阻止if(to.name.startsWith('welcome-')&&!isUnauthorized){next('/index')}else if (to.fullPath.startsWith('/index')&&isUnauthorized){next('/')}else {next()}
})``

http://www.ppmy.cn/news/1129469.html

相关文章

activemq部署

目录 1.下载 2.java环境 3.解压启动 4.访问测试 5.问题记录 5.1.无法启动成功问题 5.2.其他服务器无法访问 1.下载 ActiveMQ 2.java环境 需要注意要求的jdk版本&#xff0c;否则启动不会成功 3.解压启动 tar -zxvf apache-activemq-5.18.2-bin.tar.gz 进入到目录下执行…

数据集笔记: Porto

数据来源&#xff1a;Taxi Trajectory Data_数据集-阿里云天池 (aliyun.com) 1 数据介绍 葡萄牙波尔图市运行的所有442辆出租车的全年轨迹&#xff08;从2013年7月1日至2014年6月30日&#xff09; 2 读取数据 import pandas as pdtrapd.read_csv(C:/Users/16000/Download…

KF-GINS源码阅读

原始 Markdown文档、Visio流程图、XMind思维导图见&#xff1a;https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 一、KF-GINS 简介1、程序概述2、相关资料3、文件结构4、第三方库 二、编译、调试三、类型定义1、核心类&#xff1a;GIEngine2、文件读写类型3、配…

Mac 通过 brew安装的 ffmpeg 切换版本

现有版本为 6.x &#xff0c;想切换至 5.x 版本 先安装 5.x 版本 brew install ffmpeg5安装完成后会出现具体版本号&#xff0c;也可以自己指定例如 brew install ffmpeg5.1.3 配置环境变量 .zshrc vi ~/.zshrc添加如下命令 export PATH/usr/local/Cellar/ffmpeg5/5.1.3/bin:…

celery分布式异步任务队列-4.4.7

文章目录 celery介绍兼容性简单使用安装使用方式 功能介绍常用案例获取任务的返回值任务中使用logging定义任务基类 任务回调函数No result will be storedResult will be stored任务的追踪、失败重试 python setup.py installln -s /run/shm /dev/shmOptional configuration, …

uniapp 微信小程序使用echarts

本文目的&#xff1a;通过分包的方式&#xff0c;尽可能在微信小程序中使用最新的echarts。 当然你也可以直接使用现成的uchart或者市场里别人封好的echarts. 准备工作 下载echarts-for-weixin源码。 复制ec-canvas文件夹以及下属文件&#xff0c;在uniapp项目中与pages同级的地…

在JavaScript中获取元素

getElementById 该方法通过元素id获取元素节点。例如&#xff1a;document.getElementById(myElement) getElementsByTagName 该方法通过标签名获取元素节点。例如&#xff1a;document.getElementsByTagName(div) getElementsByClassName 该方法通过类名获取元素节点。例如&…

开源协作开发者内容平台Vrite

什么是 Vrite &#xff1f; Vrite 是一个开源协作空间&#xff0c;用于创建、管理和部署产品文档、技术博客和知识库。它旨在提供高质量、集成的用户和开发人员体验。 Vrite 具有以下功能&#xff1a; 内置管理仪表板&#xff0c;用于使用看板或列表视图管理内容生产和交付&am…