По мне сессии удобно использовать. Я в своих проектах всегда использовал сессии, но если нужно запомнить пользователя, то можно сгенерировать для него уникальный хеш и записать его в куки и бд. При входе проверяется есть ли кука с хешем и если есть, то авторизуем пользователя извлекая данные с полей где присутствует этот уникальный хеш. И что главное сессии нельзя подменить.