diff --git a/src/components/login.tsx b/src/components/login.tsx index dea9ac4..4d8e0fb 100644 --- a/src/components/login.tsx +++ b/src/components/login.tsx @@ -1,11 +1,27 @@ -import React, { useEffect } from 'react'; +import React, { useEffect, useState } from 'react'; import { Button } from 'primereact/button'; import { Card } from 'primereact/card'; -import { Configuration, Session } from '../services'; +import { useNavigate } from 'react-router-dom'; +import { Auth, Configuration, Session } from '../services'; export const Login: React.FC = () => { - // reset every old token - useEffect(() => Session.reset(), []); + const [loading, setLoading] = useState(true); + const navigate = useNavigate(); + + // check if the known bearer token is still valid + useEffect(() => { + Auth.tokenIsValid().then((valid) => { + if (!valid) { + Session.reset(); + setLoading(false); + } else { + navigate('/overview'); + } + }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + if (loading) return <>; const redirectToVatsim = () => { const url = [