Небольшой сайт на чистом php.
Вот пользователь успешно авторизовался. Как дальше понимать, что пользователь авторизован ?
1) где хранить данные, в сессии, куках или бд ?
2) какую пару ключ-значение создавать и проверять ? логин и хеш пароля или логин и хеш других данных ?
3) нужно ли постоянно генерировать новое значение ключа при открытии страницы ?
4) нужно чтобы сессия была на неделю-месяц
Подскажите пожалуйста, или скиньте ссылки на статьи.
Все, что я находил, это примитивный пример для ознакомления. А как делать правильно и безопасно в 2021 я так и не понял.
Данные, о login'е и password'е, сохраняются для дальнейшей проверки на актуальность, но если вы используете WebSocket's - это не нужно. Например если пароль поменялся во время сессии, ваше приложение узнает об этом без проверки.
1) Данные о пользователе (id например) хранить в сессиях или бд, а в куках хранить ключ к значениям сессии
2) Логин с паролем хранить точно не надо, надо просто хранить состояние о том, что пользователь авторизовался. Пароль проверять только при входе.
3) Нет, лучше csrf токен генерируйте
4) Ну можно и на неделю-месяц