react_persist_login icon indicating copy to clipboard operation
react_persist_login copied to clipboard

When I refresh twice, I get logged out.

Open Vignesh-02 opened this issue 2 years ago • 1 comments

When I refresh the page twice, i get logged out. If I refresh only once, I do not get logged out.

import { Outlet } from 'react-router-dom' import { useState, useEffect } from 'react' import useRefreshToken from '../hooks/useRefreshToken' import useAuth from '../hooks/useAuth'

const PersistLogin = () => { const [ isLoading, setIsLoading ] = useState(true) const refresh = useRefreshToken() const { auth } = useAuth()

useEffect(() => {
    let isMounted = true

    const verifyRefreshToken = async () => {
        try{
            await refresh()
        }catch (err){
            console.log(err)
        }
        finally{
            // Avoids unwanted call to verifyRefreshToken
            isMounted && setIsLoading(false)
        }
    }
    !auth?.accessToken  ? verifyRefreshToken() : setIsLoading(false);

    return () => isMounted = false
},[])

useEffect(() => {
    console.log(`isLoading : ${isLoading}`)
    console.log(`authToken : ${JSON.stringify(auth?.accessToken)}`)
},[isLoading])

return ( <> {isLoading ?

...Loading

: <Outlet /> } </> ) }

export default PersistLogin

Vignesh-02 avatar Nov 04 '22 21:11 Vignesh-02

useEffect(() => { let isMounted = true; const verifyRefreshToken = async () => { try { await refresh() } catch (error) {

    console.log(error)
  } finally {
    isMounted && setIsLoading(false) 
  }
}
       !auth?.accessToken && persist ? verifyRefreshToken() : setIsLoading(false);

  return () => isMounted = false;
}, [])

//It was actually updated on github afterward.

bilgihanist avatar Dec 08 '22 13:12 bilgihanist