VUE学习笔记(十三)-token过期时间处理

token过期时间处理

添加jwt指令

yarn add jsonwebtoken或者npm install jsonwebtoken -S

yarn add node-polyfill-webpack-plugin

src/auth/auth.service.js

import axios from "@/api/api_config"
import router from '@/router'
import * as jwt from 'jsonwebtoken'
//登陆

export const  loginUser=async(login)=>{
    return await axios.post('Users/auth',login)
}

const key='tokenAnt'
//从浏览器本地存储获取token值
export const getToken=()=>{
    return localStorage.getItem(key)
}

//清除token
export const logOut=()=>{
    //localStorage.clear()
    localStorage.removeItem(key)
    router.replace('/login')
}

//设置token,不需要,因为只有用到一次
//检查token过期时间
export const isTokenFromLocalStorageVaild=()=>{
    const token=localStorage.getItem(key)
    if(!token)return false
    const decoded=jwt.decode(token)
    //时间戳分为10位(秒级)和13位(毫秒级)
    const dateNow=Date.now()
    const expiresAt=decoded.exp*1000
    return dateNow<=expiresAt
}

最外层的vue.config.js

const { defineConfig } = require("@vue/cli-service");
const NodePolyfillPlugin=require('node-polyfill-webpack-plugin')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer: {
    proxy: {
      "/api": {
        target: "https://localhost:7107/api/", //服务器请求地址
        secure: false, //如果是https接口,需要配置这个参数
        changeOrigin: true, //请求头host属性,false表示不修改,发真实本机过去,true表示修改,修改为服务器地址,会把host成target
        pathRewrite: {
          "^/api": "",
        },
      },
    },
  },
  configureWebpack:{
    plugins:[new NodePolyfillPlugin()]
  }
});

 

posted on 2024-05-29 10:49  御行所  阅读(39)  评论(0编辑  收藏  举报

导航