Fix the null issue for refresh and access token
This commit is contained in:
parent
8632070391
commit
0628ad507f
@ -57,6 +57,8 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
trySigninWithEmail() {
|
||||
// Prevent the page from refreshing on form submission
|
||||
event.preventDefault();
|
||||
this.message = null
|
||||
if (this.email === null || this.email.length < 1) {
|
||||
this.message = this.$t('Please type in your email')
|
||||
|
||||
@ -32,13 +32,16 @@ function isTokenExpired(token) {
|
||||
backendAxios.interceptors.request.use(
|
||||
async (config) => {
|
||||
let accessToken = localStorage.getItem('access_token')
|
||||
const refreshToken = localStorage.getItem('refresh_token')
|
||||
let refreshToken = localStorage.getItem('refresh_token')
|
||||
// Fix: handle the case where localStorage returns 'null' as a string
|
||||
if (accessToken === 'null') accessToken = null;
|
||||
if (refreshToken === 'null') refreshToken = null;
|
||||
|
||||
// Check if the access token is expired
|
||||
if (!accessToken || isTokenExpired(accessToken)) {
|
||||
if (!refreshToken) {
|
||||
return config
|
||||
}
|
||||
if (accessToken == null || refreshToken == null) {
|
||||
return config
|
||||
}
|
||||
if (isTokenExpired(accessToken)) {
|
||||
try {
|
||||
// If access token is expired, refresh it using the refresh token
|
||||
const response = await axios.post('/api/user/signin/refresh-token', {}, {
|
||||
@ -48,11 +51,11 @@ backendAxios.interceptors.request.use(
|
||||
}
|
||||
});
|
||||
accessToken = response.data.access_token
|
||||
const new_refreshToken = response.data.refresh_token
|
||||
refreshToken = response.data.refresh_token
|
||||
|
||||
// Save the new access token to localStorage
|
||||
localStorage.setItem('access_token', accessToken)
|
||||
localStorage.setItem('refresh_token', new_refreshToken)
|
||||
localStorage.setItem('refresh_token', refreshToken)
|
||||
} catch (error) {
|
||||
console.error('Token refresh failed. Redirecting to login.')
|
||||
// Optionally, handle token refresh failure (e.g., redirect to login)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user