TargetHandling token expiration scenarios
Thought AnalysisBackend : 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 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. SummarizeThis 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:
|
<<: 10 excellent Web UI libraries/frameworks
>>: The current better way to make select list all options when selected/focused
Welcome to the previous canvas game series: 《VUE ...
Table of contents Controller type of k8s Relation...
JPQL stands for Java Persistence Query Language. ...
Table of contents 1. Introduction 2. Main text 2....
introduce You Yuxi’s original words. vite is simi...
Linux installation MySQL notes 1. Before installi...
vertical-align attribute is mainly used to change...
1. Introduction to Distributed Storage System Wit...
Problem Description As we all know, when writing ...
Table of contents Components - Timeline Custom no...
1. First, use springboot to build a simple dubbo ...
When the existing video player cannot meet the ne...
Introduction Describes the use cases and solution...
Elasticsearch is very popular now, and many compa...
Table of contents The browser's rendering mec...