token的用处

一、token

一般是用户使用用户名和密码登录时,服务端(后台)收到请求,验证用户名和密码,验证成功后服务端会将登录凭证做成数字签名,加密之后生成一个token,然后发给客户端(前端)。

客户端收到token后,可以在cookie或者Local Storage(本地存储)里存储起来。使用axios拦截器,在请求头加上token,客户端每次向服务点发送请求时就会token。

服务器收到请求,验证客户端请求里的token(身份验证),验证成功就向客户端返回请求的数据。(服务器要支持CORS跨域资源共享的策略)

二、Axios设置token请求头

1、配置前置拦截器

在发送axios请求之前将请求拦截,添加头部信息后再发送请求

import axios from 'axios'

// 创建axios实例
const http = axios.create({
    // 通用请求的地址前缀 http://127.0.0.1:3000/api/users/getUser
    baseURL: '/api',
    timeout: 10000,//超时时间
})

//设置请求拦截器
http.interceptors.request.use(function (config) {
    // 获取请求的头部信息
    const headers = config.headers;
    // Authorization是登录时给用户设置token的键值
    if (!headers.Authorization) {
        headers.Authorization = "bearer" + "token";
    }
 
    return config;
}, function (error) {
    console.log("请求拦截器失败")
    return Promise.reject(error);
});
2、请求中加
// get请求
axios.get('/api/data', {
    headers: {
        'Authorization': `bearer ${token}`
    }
});
// post请求
axios.post('/api/data', {
    headers: {
        'Authorization': `bearer ${token}`
    }
});

三、存储token

1、Local Storage

local Storage生命周期是永久的,除非用户手动清除信息,否则将永远存在。相同浏览器的不同页面间可以共享相同的local Storage。

// 存储
localStorage.setItem('token', token);

// 读取
const token = localStorage.getItem('token');
2、SessionStorage

生命周期为当前窗口,数据不会被其他窗口清除,如果一个页面包含多个iframe标签,之间可以共享。

// 存储
sessionStorage.setItem('token', token);

// 读取
const token = sessionStorage.getItem('token');

3、cookie

// 设置token到cookie
function setTokenToCookie(token) {
  const date = new Date();
  date.setTime(date.getTime() + (24 * 60 * 60 * 1000)); // 设置cookie过期时间为1天
  const expires = "expires=" + date.toUTCString();
  document.cookie = "token=" + token + ";" + expires + ";path=/";
}
 
// 调用函数,假设已经获取了token
setTokenToCookie('your-token');

  • 12
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值