Только начал изучение NextJS.
В общем: нужно скрыть все страницы для не авторизованного пользователя, и после регистрации собственно дать нормально пользоваться приложением...
Запросы к базе делаются через axios. Имеется отдельный класс Apiс предварительными настройками.
1) Как правильно это сделать, делать проверку в компоненте _app.js по флагу isAuth:
export default function App({ Component, pageProps }) {
const store = useStore(pageProps.initialReduxState);
const {isAuth} = store.getState().user;
return (
<>
<Provider store={store}>
<HeadApp/>
{isAuth?
<Container>
<Component {...pageProps} />
</Container>
:
<Auth/>
}
</Provider>
</>
);
}
или сделать отдельную страницу по пути /auth, и в каждом компоненте делать проверку по этому флагу и делать редирект в случае false?
2) Как хранить токены? На версии с обычным React приложением (без фреймворка) я хранил токены в localStorage, для того чтобы если перезагрузилась страница доставать оттуда токены и делать проверки протухли или нет, если да то обновлять, если нет просто авторизовывать. Next, как я уже понял не имеет доступа к localStorage (дает ошибку), так как он обрабатывает код на сервере.
Авторизация по JWT.