Правилен ли подход к запоминанию пользователя на сайте через куки?
Здравствуйте! На сайте реализовал функционал запоминания пользователя. Алгоритм таков:
Если нажата Галочка "запомнить меня", и если логин и пароль верны, то:
1. Сохранить логин и пароль функцией set cookie, предварительно захешировав пароль функцией passwordhash
2. При последующих запросах будет проверяться пароль из куки с паролем из базы данных функцией password-verify.
token сохраняется в куки браузера на основе устройства и учётных данных.
token - это просто один хэш, он же сохраняется в БД для клиентского устройства.
Связка такая: UserID (логин+пасс) -> клиент(устройство) -> token
Чтобы один юзер мог заходить с одним паролем на разных устройствах и видеть где его сессии сейчас залогинены.
Если токен украдут и используют на другом устройстве - он будет уже не валиден.
Логин и пароль - нужны только при входе в учётку, или когда токен пустой или не валидный. Вначале нужно проверить пару логин и пароль, и, если авторизация прошла - сформировать новый токен.
JackShcherbakov, сессия - на сервере. она со временем истекает и при входе работает токен из кук. т.е. передаётся только токен(хеш там) и всё.
Токен - может иметь лимит, может быть безлимитным (не рекомендуется!).
По истечению лимита - токен необходимо обменять на другой: перевыписать.
Этого юзер даже не заметит.