Да.Как вы и предполагали, куки - лучший вариант.Держать сеанс в течение длительного периода не очень хорошая идея.
Вы можете хранить информацию пользователя в файлах cookie.Для большей безопасности вы можете зашифровать их перед сохранением.Может быть с base64_decode ()
В качестве примера см. Ниже код.
setcookie("USER",$userName,time()+ (3600 * 24 * 30 * 4));
setcookie("PWD", base64_encode($password),time()+ (3600 * 24 * 30 * 4));
Удачи.
Прасад