返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue3axios配置以及cookie的使用方法实例演示
  • 931
分享到

Vue3axios配置以及cookie的使用方法实例演示

Vue3axios配置方法Vue3cookie使用方法Vue3cookie使用实例 2023-02-18 15:02:45 931人浏览 薄情痞子
摘要

调用验证码方法 在Request.js也就是axiOS中添加切换验证码方法 // 请求后拦截 instants.interceptors.response.use(

调用验证码方法

在Request.js也就是axiOS中添加切换验证码方法

  // 请求后拦截
  instants.interceptors.response.use(
    (response) => {
      if (showLoading && loading) {
        loading.close();
      }
      const responseData = response.data;
      if (responseData.status == "error") {
        // 如果触发了errorCallback函数,那么就让他切换验证码
        if (config.errorCallback) {
          config.errorCallback()
        }
        // 结尾
        return Promise.reject(responseData.info);
      } else {
        return responseData;
      }
    },
    (error) => {
      if (showLoading && loading) {
        loading.close();
      }
      return Promise.reject("网络异常");
    }
  );

在Login.Vue的请求接口中使用errorCallback方法
封装的验证码地址写法如下

const api={
  checkCode:'api/checkCode',
  login:"login"
}
const fORMDataRef = ref()
const fromData = Reactive({});
// 切换验证码
const checkCodeUrl = ref(api.checkCode);
const changeCheckCode = ()=>{
  checkCodeUrl.value = api.checkCode + "?" +new Date().getTime();
}
const login = ()=>{
  // validate
  formDataRef.value.validate(async(valid)=>{
    if (!valid) {
      return;
    }
    let result = await proxy.Request({
      url:api.login,
      params:{
        account:fromData.account,
        // 这里需要通过md5进行加密
        passWord:md5(fromData.password),
        checkCode:fromData.checkCode
        // 触发验证码错误时切换验证码
      },errorCallback:()=>{
        changeCheckCode()
      }
    })
    if (result) {
      return;
    }
  })
}

登录有两种验证方案,可以使用token验证或者用cookie验证,这里说一下Cookie验证

Cookie使用方法

安装cookie

 npm i vue-cookies --save

登录时可以不需要使用token去验证,cookie里已存在,这个还是根据后端用token还是cookie验证,自己写的话可以设置cookie模式

引入cookie

import VueCookies from 'vue-cookies';

存贮cookie

    const loginInfo = {
      account :params.account,
      password:params.password,
    }
    console.log(loginInfo);
    // 永不过期
    
   VueCookies.set("userInfo",result.data,0);
   
    if(fromData.rememberMe){
      VueCookies.set("loginInfo",loginInfo,'7d')
    }

最后得到cookie在页面加载时显示得到的账号以及密码

const init=()=>{
  const loginInfo= VueCookies.get('loginInfo');
  if (!loginInfo) {
    return
  }
  
  Object.assign(fromData,loginInfo)
}
init();

点击登录执行的完整方法:

const login = () => {
  // 加载状态
  loading.value = true;
  // elm自带方法
  formDataRef.value.validate(async (valid) => {
    if (!valid) {
      loading.value = false;
      return;
    }
    // 得到账号,密码以及记住密码
    let cookieLoginInfo = VueCookies.get("loginInfo");
    // cookie密码为空的情况
    let cooliePassword =
      cookieLoginInfo == null ? null : cookieLoginInfo.password;
    // 如果输入的密码与cookie中存的密码一致,那么就进行加密
    if (formData.password !== cooliePassword) {
      formData.password = md5(formData.password);
    }
    // 封装一个对象用来包含输入的状态,也就是账号、密码以及复选框
    let params = {
      account: formData.account,
      password: formData.password,
      checkCode: formData.checkCode,
    };
    // console.log(params);
    // result
    let result = await proxy.Request({
      url: api.login,
      params: params,
      errorCallback: () => {
        changeCheckCode();
      },
    });
    if (!result) {
      loading.value = false;
      formData.password = "";
      return;
    }
    // 成功后自动跳转页面
    setTimeout(() => {
      router.push("/");
      loading.value = false;
    }, 1500);
    
    const loginInfo = {
      account: params.account,
      password: params.password,
      rememberMe: formData.rememberMe,
    };
    console.log(loginInfo);
    // 永不过期
    VueCookies.set("userInfo", result.data, 0);
    console.log(formData.rememberMe);
    if (formData.rememberMe == 1) {
      VueCookies.set("loginInfo", loginInfo, "7d");
    }
  });
};

以上就是vue3 axios配置以及cookie的使用方法的详细内容,更多关于Vue3 axios配置以及cookie的使用方法的资料请关注编程网其它相关文章!

--结束END--

本文标题: Vue3axios配置以及cookie的使用方法实例演示

本文链接: https://lsjlt.com/news/196702.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作