Detailed explanation of VUE Token's invalidation process

Detailed explanation of VUE Token's invalidation process

Target

Handling token expiration scenarios

Token, as the key token information of the user, is not valid for a long time. Generally, there will be an expiration time (determined by the backend after what time it will expire). If the expiration time is exceeded, the current token can no longer be used as a user identification to request data. At this time, we need to do some additional expiration processing

Thought Analysis

insert image description here

Backend : When receiving a request from a user to access a certain interface, check whether the current token is invalid. If the token is invalid, return an agreed status code 10002 to the frontend.

Front-end : In the response interceptor, analyze the return value of the interface. If the status code is 10002, perform token invalidation operation.

Code landing

In **src/utils/request.js** , add custom logic when handling the error of the response interceptor

Since page jumps require routing, we first introduce

// Import routing import router from '@/router'

Code

// In the response interceptor // 1. Determine whether the operation is successful based on the data returned by the backend, and report an error if it is unsuccessful // 2. If successful, only return valid data service.interceptors.response.use(
  response => {
    // Agreement between backend and frontend: success=true indicates successful request if (response.data.success) {
      return response.data
    } else {
      // If success is false, the business is wrong, and reject is triggered directly
      // Captured by catch branch return Promise.reject(new Error(response.data.message))
    }
  },
  async error => {
    console.log('Request error', error)
    if (error.response.data.code === 10002) {
      console.log('token expired')
      await store.dispatch('user/logout')
      // .vue -- this.$route.fullPath
      // .js -- router.currentRoute.fullPath

      router.push('/login?return_url=' + encodeURIComponent(router.currentRoute.fullPath))
    }
    console.dir(error)
    return Promise.reject(error)
  }
)

The above solution is the backend-led solution. The frontend only needs to get the error code to do business processing. This solution is also the most commonly used and safest solution.

Summarize

This article ends here. I hope it can be helpful to you. I also hope you can pay more attention to more content on 123WORDPRESS.COM!

You may also be interested in:
  • Vue implements automatic jump to login page when token expires
  • Vue keeps the user logged in (various token storage methods)
  • Token verification login in Vue project (front-end part)
  • Vue implements user login and token verification
  • VUE implements token login verification

<<:  10 excellent Web UI libraries/frameworks

>>:  The current better way to make select list all options when selected/focused

Recommend

VUE+Canvas implements the game of God of Wealth receiving ingots

Welcome to the previous canvas game series: 《VUE ...

Introduction and use of five controllers in K8S

Table of contents Controller type of k8s Relation...

Detailed explanation of pure SQL statement method based on JPQL

JPQL stands for Java Persistence Query Language. ...

Detailed explanation of NodeJS modularity

Table of contents 1. Introduction 2. Main text 2....

Detailed explanation of vite2.0 configuration learning (typescript version)

introduce You Yuxi’s original words. vite is simi...

Linux installation MySQL5.6.24 usage instructions

Linux installation MySQL notes 1. Before installi...

In-depth understanding of the vertical-align property and baseline issues in CSS

vertical-align attribute is mainly used to change...

Solve the matching problem in CSS

Problem Description As we all know, when writing ...

Element Timeline implementation

Table of contents Components - Timeline Custom no...

How to use docker to deploy dubbo project

1. First, use springboot to build a simple dubbo ...

Implementation example of video player based on Vue

When the existing video player cannot meet the ne...

MySQL compression usage scenarios and solutions

Introduction Describes the use cases and solution...

How to install elasticsearch and kibana in docker

Elasticsearch is very popular now, and many compa...