前端怎么去理解 token 呢?

今天在项目中遇到了后端说要返回给我一个 token,让我每次请求的时候把 token 带上。

这个过程他说很简单,但其实是我第一次遇到,能否用前端的话来解释一下后端同事想让我干什么呢?

阅读 2.4k
5 个回答

在登录时后端会把token给你, 然后把token保存, 在封装的axios中的请求头, 加上token就行:

 config.headers['X-Auth-Token'] = token

具体怎么加看你的axios怎么封装
单独每个接口加:

import axios from 'axios'
// 下载模板
export const downloadsMoBan = (param) => axios.get('/central/downloadFile?templateType=' + param, {
  responseType: "blob", //服务器响应的数据类型,可以是 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream',默认是'json'
  headers:{
    'X-Auth-Token':token
  }
})

入职第一天,HR 给你发了一个工牌。

有工牌的人,才能进出公司;没有工牌的人,会被拦在门外。

某些特殊岗位的同事的工牌还是定制的,只有他们才能出入一些敏感场所,比如档案室、机房;你的工牌只能进出公司大门和茶水间。

这个工牌就是 Token。

token 用户本次登录的编码,来标识是当前用户,一般都是在登录接口上面返回token。
image.png
比如获取当前用户信息,在请求头Authorization上附加token,即可获取token对应的用户信息。
image.png

前端全局范围,本地如果有token 说明已经登录,后续每个接口都会附加上tokan,否则跳转到登录页面。
token 是由时效性的,会过期。过期一般会返回401 ,就跳转到登录页面。

token其实就是一个凭证,后端生成一堆字符串,在首次登录的时候返回给前端,前端后期请求接口时都需要把token带上,不需要每次请求接口都把账号和密码传过去,这样可以减轻服务器压力。
一般前端都是会在封装axios时,在请求拦截器中配置。如:

let accessToken = window.localStorage.getItem("token"); 
if (accessToken) {
    config.headers["Authorization"] = accessToken;
}

这样后台可以在header中拿到token去验证

简单点别想复杂,因为你不传token,后端就不给你数据😄

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏