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+Vux搭建一个完整的移动webApp项目的示例

    要使用Vue2.0和Vux搭建一个完整的移动WebApp,需要按照以下步骤进行: 1. 环境搭建 为了搭建移动WebApp开发环境,需要安装Node.js和npm包管理器。然后在控制台中输入以下命令进行Vue-cli的安装: npm install -g vue-cli 2. 项目创建 在进行项目创建之前,需要选择Vux模板。使用以下命令为你的项目安装Vux…

    Vue 2023年5月28日
    00
  • VueCli3构建TS项目的方法步骤

    下面是关于使用VueCli3构建TS项目的攻略: 1. 安装 VueCli3 如果你尚未安装VueCli3,需要使用以下命令进行安装: npm install -g @vue/cli 2. 创建项目 创建项目时,需要选择”Manually select features”,并勾选TypeScript、Linter / Formatter等功能。命令如下: v…

    Vue 2023年5月27日
    00
  • Vue组件间通信方式全面汇总介绍

    下面我将详细讲解“Vue组件间通信方式全面汇总介绍”的完整攻略。 1. 前言 在Vue的开发中,组件间通信是很常见的需求。要想做好组件间通信,我们必须要掌握不同的组件通信方式。本篇文章将全面汇总介绍Vue组件间通信的方式,希望能够对Vue的学习者有所帮助。 2. 父子组件通信 2.1 父传子 父组件向子组件通信,可以通过props属性来传递。具体实现方法如下…

    Vue 2023年5月29日
    00
  • vue中如何进行异步请求

    当在Vue.js应用程序中进行异步请求时,Vue.js使我们能够使用它在“vue-resource”和“axios”两个包中提供的两种不同方式。这两种方式都可以很容易地在Vue.js中创建和使用XHR请求。现在,我们来看一下如何使用这两种方式进行异步请求。 使用vue-resource进行异步请求 步骤一:安装vue-resource 在Vue.js项目中使…

    Vue 2023年5月29日
    00
  • 基于java实现websocket协议过程详解

    基于Java实现WebSocket协议过程详解 什么是WebSocket WebSocket是HTML5规范中的协议,它允许在客户端和服务器之间建立一种双向通信的协议,即WebSocket连接。该连接是基于TCP的,它通过在HTTP/1.1之上进行协商升级,可以在客户端和服务器之间创建持久性的连接,实现低延迟、高效率的实时通信。 WebSocket连接的建立…

    Vue 2023年5月28日
    00
  • Vue-cli打包后如何本地查看的操作

    当你使用Vue-cli进行前端开发时,你可以在本地使用devServer插件启动一个本地服务器进行开发调试,但是在打包完成后,你可能需要查看打包后的文件在本地的运行效果。下面我来分享一下如何在本地查看Vue-cli打包后的文件。 1. 打包Vue-cli应用 首先,你需要使用Vue-cli将你的应用进行打包。你可以使用以下命令进行打包: npm run bu…

    Vue 2023年5月27日
    00
  • vue如何使用moment处理时间戳转换成日期或时间格式

    下面是关于使用moment处理时间戳转换成日期或时间格式的完整攻略。 什么是moment.js? moment.js 是一个javascript 日期库,可用于解析、验证、操作和格式化日期。它支持日期和时间的计算、时间戳、日期字符串解析和格式化,以及各种本地化和时区设置等功能。 在Vue中使用moment.js 使用moment.js需要先将其引入到Vue项…

    Vue 2023年5月29日
    00
  • VUE脚手架的下载和配置步骤详解

    下面我将为您详细讲解关于VUE脚手架的下载和配置步骤。 什么是VUE脚手架 VUE脚手架是一个基于Node.js的脚手架工具,它可以帮助我们快速搭建Vue项目开发的基础文件夹结构,加速我们的项目开发。VUE脚手架提供了通用的开发环境配置,让我们只需关注自己的项目代码实现。 步骤一:安装Node.js 先要确保您的电脑已经安装了Node.js,如果没有安装,请…

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