vue项目后台给登录页面如何接入?一个接口+Vue-Router+Vuex简简单单实现登录

vue后台管理系统流程(面试必选) vue后台管理系统流程(面试必选) 后台页面的权限验证与安全性是非常重要的,可以说是一个后台项目一开始就必须考虑和搭建的基础核心功能 我们前端所要做的是: 不同的权限对应着不同的路由,同时侧边栏也需要根据不同的权限 , 异步生成. 技术栈主要有: vue,vue-router,vuex,axios,vue-cli 3.x(没有 webpack.config.js配置文件,取而代之的是 vue.config.js文件), fiddle.php,nodejs (express框架配合myspl搭建过一个简单的后 阅读详情

有时候急着学更多新知识会把最基础的遗忘,以前使用PHP那会还知道表单序列化,最近通过form获取里面所有name属性对应的控件值却把document.getElementById('表单Id').serializeArray()给遗忘了,通过遍历name属性去获取表单控件值-----勿忘初心

需求:之前项目大都是后台进行最后的登录接入,现在用了vue需要前端自己通过实现登录页面,以博客登录为例,登录前界面如下:

进入首页头部如下

登录前

点击登陆进入后台给的链接登录页(注意这里是后台给了登陆页面不是前端自己制作)

登录

登录后获取用户名进行显示

登陆后

主要知识:vue-Router + vuex+接口获取

(1)使用vuex在store仓库中存储一个表示login的state变量,userInfo变量标志用户信息,使用vuecli的一般是在store.js中声明

const state = {
	userInfo:{"username":''},//其他用户属性可在这里初始化
	login: false//默认还没登录
}

(2)header.vue文件html代码段

第一次进入页面加载header的时候先进行一次判断,判断用户是否已经登录,如果已经登录则将头部用户信息展示,否则直接显示登录按钮

如何判断用户是否已经登录?由于登录页面并不是前端自己制作,因此就需要后台给个接口告诉前端用户是否已经登录,前端进行判断,因此这个接口就是后台所给的可以判断用户是不是已经登录的接口,并且接口最好是返回一个status状态值,如果已经登录并将用户信息返回~(header作为公共头部是一进来就加载,因此此处接口调用了一次);退出登录只需将login值设置为false即可直接退出登录,监听用户是否登录此处使用计算属性返回login变量进行监听

<template>
<div>
<div v-show="isLogin">
{{userInfo.username}}
<div @click="loginout" style="cursor:pointer;">退出登录</div>
</div>
<div @click="login" style="cursor:pointer;" v-show="!isLogin">登录</div>
</div>
</template>
<script>
	export default {
		data() {
			return {
				
			}
		},
		computed: {
			isLogin(){
				return this.$store.getters.getLogin
			},
            loginout(){
               this.$store.state.login = false;window.location.href="登录链接";
            }
		},
		methods:{
			login(){
				window.location.href="登录链接";	
			}
		},
		mounted(){
			this.fetch({
				url:'后台给的判断用户是否已经登录接口',
				method:'post'
			}).then(res=>{
				if(res.status==200){
					this.$store.state.login = true;//如果已经登录将变量login设置为true
					this.$store.state.userInfo= res.data;//将后台登录后用户信息给userInfo
				}
			})
		}
	}

</script>

(2)处理完刚进入页面的情况,接着便是每一个路由进入要如何处理,由于'/home’路由为进入页面,无论登录还是没登录都可以显示,因此对'/home'路由不进行处理,其他路由遍历统一控制,使用vue-router,beforEach钩子函数,在遍历之前先用vuex写一个mutations函数对路由进行处理,思路是,对每个路由请求后台所给的判断用户是否已经登录的接口,如果已经登录,则跳转到当前路由,如果未登录,则跳转到登录页面链接进行登录,mutations如下:(store.js)

import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios';
const mutations = {
    	updateUserinfo(state, to) {
		axios.post('判断用户是否已经登录接口').then((res) => {
			if(res.data.status==200){
                //已经登录,login设置为true,跳转到当前路由
				state.userInfo = res.data.data;
				state.login = true;
				router.push(to);
			}else{
                //未登录,跳转到登录页面
				toast['error']({
					msg: res.data.statustext,
					timeout: 3000
				});
				window.location.href = "后台所给登录页面链接";
			}
		}).catch((err) => {
			console.log("err",err);
			toast['error']({
				msg: '获取用户信息失败!',
				timeout: 3000
			});
				window.location.href = "后台所给登录页面链接";
		})
	}
}

(3)最后一步,路由遍历(index.js)


router.beforeEach((to, from, next) => { //切换网页标题
//to要跳转过去的路由,from当前要离开的路由,next进行页面跳转必须调用,否则不会跳转到下一个路由
	if(!store.state.login&&to.path!='/home'){
    //还没登录并且当前页面不是首页(首页已经在第一步进行了处理)
			store.commit('updateUserinfo',to);//调用mutation路由处理函数
	}else{
        //已经登录了,如果路由匹配不上,跳转到404错误组件页面(该组件自己编写^_^)
		if(to.matched.length===0){
			next({path:'/404'});//转至404
		}else{
         //正确路由,next()进入到要跳转路由
			document.title = '';//设置进入页面title
			next();
		}
	}
});

总结:

一个接口:后台给出如getUserInfo接口,该接口返回用户是否已经登录,基本接口返回如下res{status:200,data:{username:'xxxx','images':'xxx'}}

Vue-Router:router.beforeEach()钩子函数

Vuex:存储判断用户登录信息{login:false,userInfo:{username:''}}

(最后,发现该方法存留一个不容易发现的bug,当刷新当前页面点击浏览器的回到上一步(即返回键)时,会跳转不过去。。。这是为什么呢。。。)

【vue+axios】一个项目学会前端实现登录拦截 一个项目学会前端实现登录拦截 一个项目学会vue全家桶+axios实现登录、拦截、登出功能,以及利用axios的http拦截器拦截请求和响应。 前言该项目是利用了Github 提供的personal token作为登录token,通过token访问你的Repository List。通过这个项目学习如何实现一个前端项目中所需要的 登录及拦截、登出、token失效的拦截及对应 axios 拦截器 阅读详情

相关推荐

Vue小模块之用户登录功能(二)使用Element美化网站和实现验证

Vue小模块之用户登录功能(二)使用Element美化网站和实现验证 技术栈 Vue全家桶: 前端框架 Vue.js 状态管理 Vuex 动态路由匹配 vue-router http服务 axios 模块打包 webpack UI框架 element 数据服务器 服务器端 node.js 基于node的web框架 express 分布式数据库 mongodb mong...

究极死胖兽的博客 3万+

登录注册前端+后台接口(vue+node)

好了后端差不多结束,前端input输入框会写吧,post的axios会写吧,params和query传参会写吧,邮箱和手机的查验规则会写吧,好了好了注册页面全部都给吧。后端的一些配置,上面这些需要改一下,具体见另一篇博客,主要写一下api里的代码,之前一直出不来,写了好多console.log,不要介意,介意的直接删掉即可。没想到写一个登录注册花了一个礼拜,脑袋嗡嗡的。

prospect_的博客 1486

激光条纹中心提取——Steger

激光条纹中心提取-Steger 好久没有记录了,记录一下今天学习的内容,据说Steger在激光条纹中心提取上神一般的存在。文章和代码都分享给大家了哈,其中有四个文件,3个C++,一个python,python一个抠图文件,3个c++包含背景图+原图, 单张图提取, 多张图提取。 分享代码 #include <opencv2\core.hpp> #include <opencv2\highgui.hpp> #include <opencv2\imgproc.hpp> #i

CharmsLUO的博客 5383

vue前端登录接口对接

实现目标:实现登录接口的对接,并将接口返回的token存至本地localStorage中。 接口信息: api的js文件中: import axios from 'axios'; export function loginD(params) { return axios.get(`${g_config.base__URL}/xxxx/${params.username}/${params.password}`); } 其中,g_config.base__URL已在global.co

weixin_43312391的博客 2134

AI智能体升级实战:从规则匹配到Function Call,准确率提升86%的技术选型之路

AI智能体升级实战:从规则匹配到Function Call的技术演进 文章记录了AI邮件助手从传统规则匹配升级到Function Call的技术迭代过程。通过案例分析,揭示了规则匹配的三大核心问题:覆盖不全(用户表达千变万化)、组合困难(多条件容易漏掉)、维护噩梦(每个需求都要新增规则)。测试数据显示,规则匹配在复杂查询中的准确率仅51%,严重影响用户体验。 技术团队对比了三种升级方案:1) 继续优化规则匹配(天花板明显);2) 微调专用NLP模型(成本高);3) 采用Function Call(灵活高效)

yweng18的博客 1079

OV5640调试大坑,关于binning、RES分辨率与EV曝光

OV5640在使用binning模式时,必须考虑使用场景,分辨率下降叠加动态范围压缩,会使目标对象细节在高光环境下大量丢失,2x2的binning模式,分辨率会远低于感光面积的1/4。

chongyun_的专栏 1829

Vue实现登录功能详解,前期配置(整合)(处理token,vuex配置,axios配置,router配置等)

Vue实现登录功能详解,前期配置。后端收到请求,验证用户名和密码,验证成功,就给前端返回一个token;前端拿到token,将token存储到localStorage和vuex中,并跳转路由页面后端判断请求头中有无token,有token,就拿到token并验证token,验证成功就返回数据,验证失败

m0_61663332的博客 7180

173、LLC谐振变换器的PCB设计实战(布线)

LLC谐振变换器PCB设计实战要点 LLC谐振变换器的PCB设计核心在于控制寄生参数,避免高频振铃和EMI问题。功率回路需确保电流路径最短且紧耦合,谐振电容焊盘需加宽以减少发热。驱动走线应独立于功率回路,避免干扰,并合理控制宽度和长度。变压器绕组结构影响共模噪声,建议原边在外层并加屏蔽铜箔。地平面设计需根据功率等级选择整块或分割,大功率下功率地与信号地应单点连接。谐振电流采样推荐四端开尔文电阻以减少电感干扰。散热需优化铜皮和过孔布局,功率器件优先放置顶层。布局应先确定谐振腔,再排布控制电路。经验上需实测寄生

Jack010169的博客 46

(四)Vue项目——轻社区:实现用户登录功能

Vue项目“轻社区”,实现用户登录注册+用户中心+邮件激活+分类管理+点赞+回复操作等功能。打造微一站式互动轻社区。

m0_71824048的博客 1497

机器人中的数值优化(十二)——带约束优化问题简介、LP线性规划

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 3852

基于STM32、HAL库的WF162A 11BA T&R气压传感器 驱动程序设计

/ 转换为7位地址。* @param temperature: 存储读取到的温度值(°C)* @param temperature: 存储读取到的温度值(°C)* @param pressure: 存储读取到的压力值(bar)* @param pressure: 存储读取到的压力值(bar)* @param range: 压力范围(bar)

corlin6688的博客 363

springboot+vue项目基础开发(三)登录接口

jwt定义了一种简洁,自身包含的格式,用于通信双方以json数据格式安全的传输信息;新建Interceptors包,新建LoginInterceptor。我们新建一个ArticleController类进行测试。新建Config包,新建WebConfig为配置类。在userController添加登录的构造函数。设置一个拦截器,这样就不用在每个请求里面设置方法。设计登录认证,使用户必须先登录才能访问其他接口。所以,我们必须借助令牌接口,进行身份识别。在postman上进行登录。发现能访问,这是不可以的。

m0_58498702的博客 647

SpringBoot一次请求中缓存数据,请求结束就清除的4种方法,你会几种?

通过以上四种方法,你可以在 SpringBoot 的一次请求中缓存数据,并在请求结束后自动清除这些缓存数据。使用 ThreadLocal:适用于需要跨多个方法调用的缓存数据,灵活性高,但需要注意内存泄漏问题。使用 AOP:适用于全局性的缓存管理,代码更加优雅,但需要对 AOP 有一定的了解。使用 ServletRequestListener:适用于简单的请求生命周期管理,配置简单,但功能相对有限。使用 HttpServletRequest 的 setAttribute 和 getAttribute。

java专栏 1295

vue实现登录路由跳转到成功页面

一. 效果 1.未登陆之前 2.登录界面 3.登录之后路由跳转 二.需求分析 要求: 使用vue-cli搭建 创建项目 密码输入框有 两个功能,当用户输入时候如果坚持caps lock处于开启状态。 右侧出现提示 caps lock is on 当用户点击右侧的眼睛图标的时候, 可以明文和密文的方式显示密码 页面的 组件可以使用 element-ui 5.点击login的时候 如果用户名或密码为空,需要把 对应的输入框变红,并且该输入框下方提示提示 用户名或密码不能为空 完成输入后

一粒程序米 4万+

脑机接口中的视觉信号解码:原理、技术与应用

脑机接口中的视觉信号解码:原理、技术与应用​ ,人工智能,计算机视觉,大模型,AI,脑机接口(Brain - Computer Interface,BCI)作为一种革命性的技术,致力于搭建人脑与外部设备之间的直接通信桥梁,绕开传统的神经肌肉输出通路。其核心目标是解读大脑活动产生的信号,从而实现对外部设备的精准控制或信息交互。在众多脑机接口研究方向中,视觉信号解码因其独特的优势和广泛的应用前景,吸引了大量科研人员的关注。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 20万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

vue+vue-router+axios 实现权限登录和token验证

大致说一下整体的流程与思路 1、第一次登录的时候,前端调后端的登陆接口,发送用户名和密码(因为用的是GitHub的personal access tokens所以这步省略) 2、后端收到请求,验证用户名和密码,验证成功,就给前端返回一个token(本次测试用到是GitHub的personal access tokens) 3、前端拿到token,将token存储到localStorage和v...

qq_40710228的博客 3578

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

一个非常好看的前端Vue3登录页面

Login登录demo 非常好看

weixin_53278464的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【第一个Vue上手小项目】Vue-router+Element-ui+Vuex+axios实现前后端分离--登录实例

目录一、router路由配置1.1 创建项目1.2 router路由配置1.3 router测试 :)二、element优化前端2.1 引入element2.2 修改整体布局2.3 修改登录布局2.4 登录验证测试 :)2.5 优化vue-method表单验证三、Vuex管理全局数据3.1 引入Vuex3.2 登录界面3.3 缓存测试 :)四、axios登录验证(结合后台)4.1 引入axios4...

cungudafa的博客 5658

vue router.beforeEach(),详解

router.beforeEach()一般用来做一些进入页面的限制。比如没有登录,就不能进入某些页面,只有登录了之后才有权限查看某些页面。。。说白了就是路由拦截。 第一步 规定进入路由需不需要权限 @/router/index.js import A from '@/components/a' { path: '/a', name: 'a', component:...

heshuaicsdn的博客 8万+

vue3项目实战,vue项目实战,实现通用后台管理(傻瓜式一步一步记录代码实现过程)直接看项目效果

傻瓜式记录用vue3一步一步实现通用后台管理的过程

edison4499的博客 1万+

Vue 97 ,前端 SSO 单点登录实现完整指南与注意事项( Vue + Vuex + Router 实现单点登录 )

⭐​在大型企业或平台系统中,单点登录(Single Sign-On,简称 SSO)是提升用户体验和系统统一管理的重要手段。本文以 Vue 项目为基础,结合 Vuex 和 Vue Router,实现一个无需登录页面、通过外部平台传入 Token 的前端 SSO 方案,并融合原有权限验证流程。 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其

AI Agent 全栈架构师(AI + GIS + Backend)& 数字芯片系统架构师(FPGA),NorthCity Smile的博客(NcSmile,博主域名:https://ncmile.blog.youkuaiyun.com) 2213

vue后台项目使用router.addRoutes动态加入路由思路

后台路由需求:根据用户权限获取菜单(也就是路由信息),动态加载到路由当中,实现正常路由切换。 1、最开始的实现方式:用户登录—&amp;amp;amp;gt;接口获取当前用户的菜单信息—&amp;amp;amp;gt;格式化菜单信息(格式化成,路由格式)—&amp;amp;amp;gt;使用router.addRoutes动态加入路由。 实现结果:路由添加成功,并且能正常的跳转。但是,当我刷新页面后页面路由出错了,直接进入了错误页面404。 问题原因:vue在初始化的...

weixin_44330517的博客 1万+

vue小项目(一)-登录界面(前后端分离)

实现登录界面需要的基础知识最终目录实现逻辑 需要的基础知识 1 创建项目使用vu-cli脚手架,需要提前了解其目录含义 2 该项目前端使用到: vue, vuex, vue-router,axios,session存储 3 该项目后端使用到: node.js, express 最终目录 实现逻辑 ...

以沫wh的博客 8642

mock+vuex+axios利用token实现用户登录验证

思路: mock模拟用户数据 axios请求接口, router中进行needLogin的判断,true为需要登录才能进入此页面 vuex中,将在login.vue中获取的用户名和密码进行验证 验证后,拿到token和usertitle,将token存储到sessionStorage中,usertitle存储至vuex的title,在home.vue中显示 前端每次跳转时,就在main.js使用...

itsxyu的博客 7012
上一篇: 自定义基于elementui的仿QQ邀请成员进群树图模糊搜索组件可实现默认选中部分选项,删除选项,搜索展示子节点
下一篇: 从nodejs小白到结合mongoDB,express的移动端小项目制作
小简GoGo
博客等级 码龄10年 50粉丝 32原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值