obabichev / react-token-auth

84 stars 22 forks source link

Token expiration error #25

Open ICS-Vortex opened 2 years ago

ICS-Vortex commented 2 years ago

Hello. In my console I often see a following error:

isTokenExpired.js:35 SyntaxError: Unexpected token  in JSON at position 94
    at JSON.parse (<anonymous>)
    at jwtExp (vendors~main.chunk.js:261086)
    at Object.push../node_modules/react-token-auth/lib/isTokenExpired.js.exports.isTokenExpired (vendors~main.chunk.js:261072)
    at vendors~main.chunk.js:260685
    at step (vendors~main.chunk.js:260600)
    at Object.next (vendors~main.chunk.js:260531)
    at vendors~main.chunk.js:260503
    at new Promise (<anonymous>)
    at push../node_modules/react-token-auth/lib/createAuthProvider.js.__awaiter (vendors~main.chunk.js:260482)
    at getSession (vendors~main.chunk.js:260679)
    at vendors~main.chunk.js:260716
    at step (vendors~main.chunk.js:260600)
    at Object.next (vendors~main.chunk.js:260531)
    at vendors~main.chunk.js:260503
    at new Promise (<anonymous>)
    at push../node_modules/react-token-auth/lib/createAuthProvider.js.__awaiter (vendors~main.chunk.js:260482)
    at vendors~main.chunk.js:260707
    at vendors~main.chunk.js:261721
    at step (vendors~main.chunk.js:261691)
    at Object.next (vendors~main.chunk.js:261622)
    at vendors~main.chunk.js:261594
    at new Promise (<anonymous>)
    at push../node_modules/react-token-auth/lib/utils/createAuthFetch.js.__awaiter (vendors~main.chunk.js:261573)
    at vendors~main.chunk.js:261714
    at main.chunk.js:11917
    at Object.dispatch (vendors~main.chunk.js:267492)
    at dispatch (<anonymous>:14608:80)
    at main.chunk.js:1432
    at invokePassiveEffectCreate (vendors~main.chunk.js:244378)
    at HTMLUnknownElement.callCallback (vendors~main.chunk.js:224994)
    at Object.invokeGuardedCallbackDev (vendors~main.chunk.js:225043)
    at invokeGuardedCallback (vendors~main.chunk.js:225103)
    at flushPassiveEffectsImpl (vendors~main.chunk.js:244460)
    at unstable_runWithPriority (vendors~main.chunk.js:269204)
    at runWithPriority$1 (vendors~main.chunk.js:232400)
    at flushPassiveEffects (vendors~main.chunk.js:244337)
    at vendors~main.chunk.js:244218
    at workLoop (vendors~main.chunk.js:269154)
    at flushWork (vendors~main.chunk.js:269128)
    at MessagePort.performWorkUntilDeadline (vendors~main.chunk.js:268894)

As far as I see, it comes from vendors, directly from react-token-auth LIB. Any ideas how to fix it ?

obabichev commented 2 years ago

Hi, thank you for raising the issues.

Could you say what do you have in the storage at the moment of obtaining the error?

ICS-Vortex commented 2 years ago

Hello. Yes, storage contains valid JSON

image

authProvider is defined as documentation says.

import {createAuthProvider} from 'react-token-auth';
import history from "../history";
import {PAGE_LOGIN} from "../constants/routes";

export const {useAuth, authFetch, login, logout, getSession, getSessionState} = createAuthProvider({
    storageKey: 'token',
    getAccessToken: session => session.token,
    storage: localStorage,
    onUpdateToken: (token) => {
        return fetch(process.env.REACT_APP_API_HOST + '/api/token/refresh', {
            method: 'POST',
            headers: {'Content-Type': 'application/json'},
            body: JSON.stringify({refreshToken: token.refreshToken})
        })
            .then(r => r.json())
            .catch((err) => {
                logout();
                console.error('Token Refresh error:', err);
                history.push(PAGE_LOGIN);
            })
    }
});
LesterAngulo commented 2 years ago

i have the same isssue 🙁