Я делаю регистрацию в своем приложении. Когда пользователь успешно проходит проверку и отправляет форму на сервер, token
сохраняется в localStorage и перенаправляет его на страницу home
. То есть, если токена нет, его нельзя перенаправить на страницу home
.
Я реализую это в файле Home. js:
const Home = () => {
const token = localStorage.getItem("myToken")
return (
<div>
{!token && <Redirect to="/" />}
<Header/>
<h1 >Home page</h1>
</div>
)
}
Но человек, который обзор моего приложения говорят:
Не лучший подход. Предположим, у нас может быть много таких компонентов - и у каждого из нас будет такой лог c для записи? А если он меняется - то бегать везде, чтобы изменить?
Это про логи c: {!token && <Redirect to="/" />}
Я специально писал в Home. js file
И он предложил, как это можно сделать по-другому:
Лучшим вариантом будет проверка токена пользователя на этапе маршрутизации. То есть, разбить все маршруты в приложении на неавторизованные и авторизованные.
Это мой файл приложения. js, где в моем приложении есть маршрутизация:
const history = createBrowserHistory();
class App extends React.Component {
render(){
return (
<BrowserRouter history={history}>
<div className="wrapper">
<div className="content">
<Switch>
<Route exact path="/" component={SignupForm} />
<Route path="/home" component={Home} />
<Route path="/login" component={LoginForm} />
</Switch>
</div>
</div>
</BrowserRouter>
)
}
}
Как реализовать проверку пользовательского jwt-токена на этапе маршрутизации (в файле App. js, где расположены мои маршруты)?