vue之登录和token处理

Posted qdlhj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue之登录和token处理相关的知识,希望对你有一定的参考价值。

应用场景一

Vue刷新token,判断token是否过期、失效,进行登录判断跟token值存储

刷新token和token是否过期的操作都是由后端实现,前端只负责根据code的不同状态来做不同的操作:可以跟后端讨论不同的状态对应不同的情况来进行处理

具体实现

/**
* 全局变量 和 设置 、配置等。。。
*/
 
import axios from axios // 引入axios
 
import Storage from @/assets/js/util/storage.js // storage工具类,简单的封装
 
 
 
axios.defaults.headers.post[Content-Type] = application/x-www-form-urlencoded
 
 
 
/* 请求拦截器 */
 
axios.interceptors.request.use(function (config) { // 每次请求时会从localStorage中获取token
 
    let token = Storage.localGet(token)
 
    if (token) {
    
        token = bearer +   + token.replace(/|"/g, ‘‘) // 把token加入到默认请求参数中
 
        config.headers.common[Authorization] = token
 
    }
 
    return config
 
}, function (error) {
 
    return Promise.reject(error)
 
})
 
/* 响应拦截器 */
 
axios.interceptors.response.use(function (response) { // ①10010 token过期(30天) ②10011 token无效
 
if (response.data.code === 10010 || response.data.code === 10011) {
 
    Storage.localRemove(token) // 删除已经失效或过期的token(不删除也可以,因为登录后覆盖)
 
    router.replace({
 
        path: /login // 到登录页重新获取token
 
    })
 
} else if (response.data.token) { // 判断token是否存在,如果存在说明需要更新token
 
    Storage.localSet(token, response.data.token) // 覆盖原来的token(默认一天刷新一次)
 
}
 
    return response
 
}, function (error) {
 
    return Promise.reject(error)
 
})

 

以上是关于vue之登录和token处理的主要内容,如果未能解决你的问题,请参考以下文章

简单介绍vue获取token实现token登录的示例代码

Vue2.0-token权限处理

SpringBoot+Vue前后端分离实战(用户注册登录)

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

Vue中使用axios的响应拦截器处理请求失败的情况(处理token过期问题)以及 登录成功跳转回原来页面问题

vue实现登陆注册功能(小白篇)