Как правильно реализовать проверку подлинности без сохранения состояния?
Я новичок в одностраничной заявке. Один большой вопрос для меня - как защитить свое приложение. Я использую React в front-end и экспресс + mongodb в back-end.
Я старый веб-сайт, мы используем сессию для авторизации. Если время сеанса истекло, мы можем позволить пользователю перенаправить на страницу входа. И если пользователь продолжает выполнять какие-либо действия на нашем сайте, его сеанс никогда не истечет.
Но сейчас я использую JWT для авторизации. Срок действия токена может истечь через 1 минуту, после чего пользователь должен снова войти в систему.
Насколько я понимаю, одним из способов является "повторная отправка токена на каждый запрос / ответ, тогда каждый запрос / ответ будет иметь новый токен". Но я думаю, что это не правильный способ использования JWT.
Итак, мои вопросы:
- Как правильно избежать повторного входа пользователя, если он все еще работает в нашем веб-приложении?
- Нужно ли хранить токен в базе данных (mongodb)?
- Если я храню токен в localStorage, каждый может позаимствовать его из браузера и скопировать токен в свой клиент. Как этого избежать?