vue项目中存储与使用后端传递过来的token

Vue项目中使用后端传递过来的token需要进行以下几个步骤:

1. 发送登录请求,获取token

在登录页面,用户输入用户名和密码后,向后端发送登录请求。如果用户名和密码验证成功,后端返回一个token给前端。

axios.post('/login', {
  username: 'username',
  password: 'password'
})
.then(response => {
  const token = response.data.token
  // 存储token
  localStorage.setItem('accessToken', token)
})
.catch(error => {
  console.error(error)
})

在获取到token后,可以使用localStorage或者cookie进行存储。这里使用localStorage进行存储。

2. 在请求中添加token

在请求后端API的时候,需要将token添加到请求头中。

axios.get('/api/data', {
  headers: {
    'Authorization': 'Bearer ' + localStorage.getItem('accessToken')
  }
})
.then(response => {
  console.log(response.data)
})
.catch(error => {
  console.error(error)
})

在上面的示例中,将token添加到请求头中的方式是在headers对象中添加Authorization字段。其中Bearer是一个常见的身份验证方案,用于标识身份验证信息的类型。

示例1: 在路由守卫中检查token是否过期

router.beforeEach((to, from, next) => {
  const token = localStorage.getItem('accessToken')
  if (to.meta.requiresAuth && !token) {
    next('/login')
  } else if (to.meta.requiresAuth && token) {
    const decodedToken = jwt.decode(token)
    const currentTime = Date.now() / 1000
    if (decodedToken.exp < currentTime) {
      localStorage.removeItem('accessToken')
      next('/login')
    } else {
      next()
    }
  } else {
    next()
  }
})

在示例中,设置了一个路由守卫,用于检查用户的登录状态。如果用户没有登录,路由会被重定向到登录页面。如果用户已经登录,守卫会检查token是否过期。如果过期了,则将token从localStorage中删除,并将路由重定向到登录页面。

示例2: 在Vuex中管理token

const state = {
  accessToken: localStorage.getItem('accessToken') || ''
}

const mutations = {
  setAccessToken(state, token) {
    state.accessToken = token
    localStorage.setItem('accessToken', token)
  }
}

const actions = {
  login({ commit }, { username, password }) {
    return axios.post('/login', { username, password })
      .then(response => {
        const token = response.data.token
        commit('setAccessToken', token)
      })
  }
}

const getters = {
  isAuthenticated: state => Boolean(state.accessToken)
}

在示例中,使用了Vuex来管理token。在state中定义了一个accessToken的状态,用于存储token。在mutations中定义了一个setAccessToken的函数用于设置token值,并使用localStorage进行存储。在actions中定义了一个login函数,在用户成功登录之后,会向后端发送登录请求,并将返回的token值通过commit方法调用setAccessToken进行设置。在getters中设置了一个isAuthenticated计算属性,用于判断用户是否已经登录。

通过上述方式,我们可以完整的实现在Vue项目中存储和使用后端传递过来的token。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue项目中存储与使用后端传递过来的token - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue2.0子同级组件之间数据交互方法

    当我们在Vue2.0中开发应用时,会遇到子组件之间需要传递数据的情况,这时候我们可以使用父子组件传参、eventBus、vuex、$attrs和$emit等方法来实现子组件之间的数据交互。 父子组件传参 父子组件之间传参是Vue2.0提供的最基本的数据交互方式,其核心思想是通过props属性将父组件的数据传递到子组件中,子组件通过props接收这些数据,从而…

    Vue 2023年5月28日
    00
  • 详解vue v-model

    当我们学习Vue框架时,v-model是一个很重要的概念。v-model指令可以在表单(input, textarea, select)元素上创建双向数据绑定。它可以把表单中用户输入的数据,绑定到Vue实例中的数据属性上;同时,当Vue实例中的数据属性发生变化时,它会同步到表单中去。 1. 如何使用v-model v-model绑定到表单元素上,它的值是绑定…

    Vue 2023年5月28日
    00
  • vue3组件化开发之可复用性的应用实例详解

    下面详细讲解“vue3组件化开发之可复用性的应用实例详解”这个完整攻略。 一、背景和前置知识 首先需要了解的是Vue3的组件化开发,并且对Vue3语法要有一定的掌握。 二、组件复用性的重要性 在实际开发中,组件的复用性非常重要,可以大大提升开发效率。在Vue3中,组件是可以被复用的,通过将公共逻辑和UI组件编写成可复用的组件,可以节省时间和代码量。 三、如何…

    Vue 2023年5月27日
    00
  • 分析ES5和ES6的apply区别

    关于分析ES5和ES6的apply区别,我们从以下几个方面来讲解。 ES5 apply 在 ES5 中,apply 是函数的一个方法,它是为了使函数支持传递数组作为参数而存在的,它的语法如下: func.apply(thisArg, [argsArray]) 其中,thisArg 指定了函数被执行时所绑定的 this 对象,argsArray 则是一个数组,…

    Vue 2023年5月28日
    00
  • Vue.js状态管理之Pinia与Vuex详解

    Vue.js状态管理之Pinia与Vuex详解 状态管理是什么 在一些大型 Web 应用中,数据的流转较为复杂,需要对数据的读写进行控制和管理,以保证应用的数据一致性和可靠性,而状态管理就是一种用于控制和管理应用数据的方法。 在 Vue.js 中,状态管理可以使用两种比较流行的库实现:Vuex 和 Pinia。 Vuex 简介 Vuex 是一个专门为 Vue…

    Vue 2023年5月27日
    00
  • 前端vue a链接下载文件失败的问题(未发现文件)

    针对vue前端下载文件失败的问题,常见的原因有以下几种: 后端没有处理下载请求的接口,或者接口存在问题; 前端对于下载请求的处理未能正确执行。 针对第一种情况,需要检查后端是否提供对应的下载接口,并且接口返回的文件地址是否正确。可以通过postman等工具模拟请求该接口,检查返回的数据是否符合预期。 针对前端对于下载请求的处理问题,常见的一种错误是只处理了应…

    Vue 2023年5月28日
    00
  • vue组件入门知识全梳理

    Vue 组件入门知识全梳理 什么是 Vue 组件? 在 Vue 中,组件可以理解为独立的可复用的代码块,它可以将一些具有相同或类似功能的代码组织在一起,使其可以被反复使用。 组件具有自己的属性和行为,可以像 HTML 标签一样在模板中使用。每个组件都是一个独立的实例,因此可以用不同的参数和数据来渲染同一个组件。 创建组件 在 Vue 中,可以通过 Vue.c…

    Vue 2023年5月28日
    00
  • 详解Vue 的异常处理机制

    详解Vue 的异常处理机制 在Vue中,异常处理是非常重要的一项功能。当Vue应用程序遇到错误时,异常处理机制能够以可控的方式展示错误信息,帮助开发过程中更加高效、准确的定位和解决问题。本文将详解Vue的异常处理机制,以及如何在Vue应用程序中实现异常处理。 Vue 的异常处理机制 Vue中的异常处理机制主要由以下两部分组成: 1.全局错误处理器(Globa…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部