diff --git a/src/components/AuthProvider/AuthProvider.js b/src/components/AuthProvider/AuthProvider.js index c63b9e2..ae5b6fa 100644 --- a/src/components/AuthProvider/AuthProvider.js +++ b/src/components/AuthProvider/AuthProvider.js @@ -1,4 +1,6 @@ -import React, { useState, createContext, useContext } from "react"; +import React, { useState, createContext, useContext, useEffect } from "react"; +import { useCookies } from "react-cookie"; +import { refresh } from "../../auth/"; @@ -15,8 +17,29 @@ export const useTokenSetter = () => useContext(TokenSetterContext); export default function AuthProvider({ children }) { - const [loggedIn, setLoggedIn] = useState(false); - const [token, setToken] = useState(null); + const [loggedIn, setLoggedIn] = useState( false ); + const [token, setToken] = useState( null ); + + const [cookies] = useCookies(); + + useEffect( _ => { + async function tryRefresh(csrf_refresh_token){ + console.log("CSRF Token", csrf_refresh_token) + if (csrf_refresh_token === undefined){ + return false; + } + + let new_access_token = await refresh(csrf_refresh_token); + if (!new_access_token){ + console.error("Failed to refresh access token.") + return false; + } + + setToken(new_access_token); + setLoggedIn(true); + } + tryRefresh(cookies.csrf_refresh_token); + }, []); return (