Всем привет. Делаю приложение на React.js, нужно сделать доступ к нему через авторизацию. Авторизацию сделал через JWT на бэке (laravel), но теперь возникла проблема с защитой всего приложения от доступа и сохранением сессии. После авторизации, сохраняю token JWT в localeStorage, но совершенно не могу понять, как при инициализации приложения, используя Redux, рендирить App, в случае если пользователь авторизован, и делать редирект на login, если нет. И помогите пожалуйста понять, как реализовать сессию через JWT и localStorage.
const Content = () => {
return (
<>
<Switch>
<Route path={"/"} render={props => <Empty {...props}/>}/>
<Route component={NotFound}/>
</Switch>
</>
)
};
const Login = () => {
return (
<>
<AuthPage/>
<Redirect to={'/login'}/>
</>
)
};
class App extends Component {
render() {
return (
<MainProvider>
<div className={"app-wrapper"}>
{console.log(this.props.session())}
<Router path={'/'} render={() => (
this.props.session() ? (
<Content/>
) : (
<Login/>
)
)}>
</Router>
</div>
</MainProvider>
);
}
}
this.props.session() это action, который получает профиль пользователя, и в случае успеха, помимо dispatch, возвращает также true.
В моем случае я делал следующим образом:
При входе в приложение брал JWT
из localStorage
.
токена
нет - однозначно редирект на login
.Если токен
есть, я делал запрос к какому-то методу бэкенда (который требует JWT
)
а) если сервер ответил 200
- значит токен не протух и с ним можно дальше работать
б) если сервер ответил 4xx
ошибкой (обычно 401
или 403
), то редирект на login
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Учу js, выдумываю задачи, зациклилась на одной, очень хочется послушать знающий людей)) Есть форма с одним полем ввода - промокодВвожу промокод...
Как сделать на странице автоматическое срабатывание элемента button onclick, при выборе в select-е определенного значения и сохранение его на другой...
Есть ли библиотека с помощью которой можно генерировать файлы docx на клиенте, без node js
Доброе время суток !!!э html которая состоит с 4 блоков как сделать что когда мышка подходит к низу блока сразу бросало на следующий нижний блок,...