Грубо говоря алгоритм такой:
1. На фронте checkAuth
2. Получаем юзера с бэка, если 401, и результат checkAuth true, то посылаем сохраненный в localStorage токен и логиним или создаём юзера на бэке
3. Если 401, но checkAuth false удаляем локальную сессию и посылаем на логин
4. Аналогично если checkAuth вернул false и локально нет, то посылаем на логин
5. Когда логинимся на фронте получаем токен и посылаем токен бэку ии логиним/создаём юзера, расшифровав токен