Я реализовывал не много проще. Кука «запомнить меня» — кидается кука, в которой md5 склейки id+md5(passwd)+ip
+ еще одну куку с логином.
Если такая кука есть — берем из базы соответствующие данные пользователя, проверяем склейку — если верно то авторизовываем. Изменился ip — запомнить меня не срабатывает.
Можно для большей надежности еще и данные о браузере в склейку писать.