通过axios发起登陆请求

前言:
本片文章是实现登陆的请求来实现登陆,使用axios来发起请求,请求的是数据库中的数据,使用vue脚手架搭建的项目,页面布局使用的是element ui,思路:通过axios发起请求,判断statu状态码是否为200,为200则说明登陆成功,反之登陆失败。实现过程如下:
1、首先在main.js中先全局引入axios
在这里插入图片描述
2、在methods中发起请求
在这里插入图片描述

注:
(1)通过axios发起请求,打印congsole.log(result),返回的数据是promise的,如果某个方法的返回值是promise,我们就使用async和await来简化这次promise操作,await只能被用到async修饰的方法中,要把紧挨着await的那个方法修饰成异步的async方法

图1:表示获取回来的数据时不加没有await和async的结果
在这里插入图片描述
图2:表示获取回来的数据时加了await和async的结果
在这里插入图片描述
(2)这里的{data:res}表示解构赋值,结构出data,并给他取名为res
在这里插入图片描述
3、最终登陆功能的方法如下:
在这里插入图片描述
3、登陆成功后跳转到主页
(1)、先在路由中写主页的路由,并创建主页面
在这里插入图片描述
(2)、将token保存到本地,并通过编程式导航跳转到主页
在这里插入图片描述
4、路由导航守卫控制访问权限
(1)
如果用户没有登录,但是直接通过URL访问特定页面,需要重新导航到登录页面
//为路由对象,添加beforeEach 导航守卫

router.beforeEach((to,from, next)=>{
// 如果用户访问的登录页,直接放行
if(to.path === '/login') return next()
//从sessionStorage中获取到保存的token
const tokenStr = window.sessionStorage.getItem('token');
//没有token,强制跳转到登陆页面
if (!tokenStr) return next('/login)
next()
}

(2)在router.js中挂载路由导航守卫

router。beforEach((to,from,next)=>{
//to 表示将要访问的路径
//from 表示从哪个路径跳转而来
//next 是一个函数,表示放行
//next('/login')  强制跳转

// 如果用户访问的登录页,直接放行
if(to.path === '/login') return next()
//从sessionStorage中获取到保存的token
const tokenStr = window.sessionStorage.getItem('token');
//没有token,强制跳转到登陆页面
if (!tokenStr) return next('/login)
next()


})

5、退出登陆
基于token的方式实现退出比较简单,只需要销毁本地的token即可,这样,后续的请求就不会携带token,必须重新登陆生成一个新的token之后才可以访问页面

//清空token
window.sessionStorage.clear()
//跳转到登陆页面
this.$router.push('/login')

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值