vue+element-ui 登录预验证,token

1.点击登录时的预验证

  • 触发函数调用this.$refs.xxx.validate方法
  this.$refs.loginFormRef.validate((vali, obj) => {
        if (!vali) {
          return;
        }
    }

2.配置axios发送登录请求

main.js文件:

	//导入axios
	import axios from "axios";
	
	//配置请求的根路径
	axios.defaults.baseURL = "http://127.0.0.1:8888/api/private/v1/";
	
	// 配置axios请求拦截器实现发送请求时携带token
	axios.interceptors.request.use((config) => {
	    config.headers.Authorization = window.sessionStorage.getItem("token");
	    return config;
	});
	
	//挂载到原型对象上,便于直接通过this.$http发送请求
	Vue.prototype.$http = axios;

login.vue文件:

	const { data: res } = await this.$http.post("/login", this.form);

3.登录成功后token的保存和页面的跳转

login.vue:

	//添加token
	window.sessionStorage.setItem("token",res.data.token)
	//跳转至主页
	this.$router.push('/home')

4.保证每次页面请求时带上token

router.js:

//挂载路由导航守卫
router.beforeEach((to, from, next) => {
	//通过to.path获取请求的路径,判断请求的是否为登录页
    if (to.path == "/login") return next();
    //如果请求的不是登录页则判断是否存在token,不存在就跳至登录页
    const token = window.sessionStorage.getItem("token");    
    if (!token) return next("/login");
    next();
});

5.退出登录的操作

login.vue

//清除token
window.sessionStorage.clear()
//跳至登录页
this.$router.push("/login");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值