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

yizhihongxing

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日

相关文章

  • Vue验证码60秒倒计时功能简单实例代码

    那么我们来逐步讲解如何使用Vue实现验证码60秒倒计时功能的步骤和代码实现。 步骤一:安装Vue 首先,需要安装Vue,可通过以下命令安装: npm install vue 步骤二:创建Vue实例 在HTML页面中引入Vue库后,需创建Vue实例,用于管理页面数据和操作行为: const vueApp = new Vue({ el: ‘#app’, data…

    Vue 2023年5月29日
    00
  • Vue中如何判断对象是否为空

    在Vue中,我们可以使用JavaScript原生的方式来判断对象是否为空。下面是两个示例说明: 示例一:使用Object.keys()方法 Vue中的组件数据通常都是一个对象,我们可以使用Object.keys()方法来获取对象的所有属性名数组,并通过判断这个数组的长度是否为0来判断对象是否为空。 if(Object.keys(obj).length ===…

    Vue 2023年5月28日
    00
  • 原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】

    【标题】原生js实现可兼容PC和移动端的拖动滑块功能详解 【简介】本文将详细讲解如何使用原生JS实现可兼容PC和移动端的拖动滑块功能,这对于一些需要用户进行数值选择的网站或应用非常有用。 【具体步骤】 HTML部分 为了实现滑块功能,我们需要在HTML中创建一个滑块的DOM元素,具体代码如下: <div class="slider-conta…

    Vue 2023年5月28日
    00
  • 详解Vue中的keep-alive

    标题: 详解Vue中的keep-alive使用方法和原理 正文:Vue中的keep-alive是一个性能优化的重要组件,它可以将不活跃的组件缓存起来,减少组件的不必要的重渲染,提升页面的渲染效率。本文主要介绍keep-alive的使用方法和原理。 keep-alive的常用属性 keep-alive有几个常用的属性: include:需要被缓存的组件名,可以…

    Vue 2023年5月27日
    00
  • JS实现的input选择图片本地预览功能示例

    下面我将为你详细讲解JS实现的input选择图片本地预览功能的攻略。 简介 JS实现的input选择图片本地预览功能,顾名思义,就是可以通过JS代码来实现input表单中选择图片后,在本地预览图片的功能。这类功能一般可以用在上传头像、上传图片等场景中。 过程 下面,我将带你一步步实现这个功能。 第一步:HTML结构 首先,我们需要编写HTML结构,代码如下:…

    Vue 2023年5月28日
    00
  • Vue实现动态样式的多种方法汇总

    下面为您详细讲解“Vue实现动态样式的多种方法汇总”的完整攻略。 背景 在Vue的开发中,我们常常需要实现动态样式,使标签在不同的状态下展示不同的颜色、背景等等。本篇攻略将为您介绍Vue实现动态样式的多种方法。 方法一:通过计算属性绑定class 通过计算属性绑定class是Vue实现动态样式的一种常规方法,通过在计算属性中根据数据的不同来动态绑定class…

    Vue 2023年5月28日
    00
  • C#实现的微信网页授权操作逻辑封装示例

    Sure, 下面是关于“C#实现的微信网页授权操作逻辑封装示例”的攻略。 简介 微信网页授权是一个重要的功能,它允许用户通过微信公众平台进行网页授权并获取相应的用户信息。C#是一种广泛使用的编程语言,可以通过C#编写程序进行微信网页授权操作的逻辑封装。 本篇攻略将介绍如何使用C#实现微信网页授权操作逻辑的封装。过程中,强烈建议您具备一定的C#编程实践经验,并…

    Vue 2023年5月28日
    00
  • vue 实现在函数中触发路由跳转的示例

    当我们在使用 Vue.js 开发 SPA(单页应用)时,使用路由跳转是必不可少的功能。在函数中触发路由跳转,可以让我们更加灵活地控制页面跳转,满足我们的设计需求。下面是实现这一功能的完整攻略: 创建 Vue 项目并安装所需依赖 我们首先需要创建一个 Vue 项目并在其中安装所需的依赖。可以使用 Vue CLI 快速创建一个项目,然后在项目根目录下运行以下命令…

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