Короче говоря, я разрабатываю собственный механизм отчетов. Он полностью основан на Интернете (использует PHP и различные методы AJAX) и интерпретирует данные, хранящиеся в базе данных MySQL, нашим производственным программным обеспечением. Он работает на сервере Ubuntu 8.04, и все сотрудники имеют учетную запись пользователя Linux на этой машине. Я установил систему входа в систему, используя pam_auth, которая заставляет пользователя регистрироваться со своей учетной записью пользователя linux и определяет, принадлежат ли они к соответствующей группе для доступа к определенным отчетам.PHP pam_auth и cookies
Эта часть отлично работает, моя проблема здесь заключается в добавлении функции «запомнить меня» с помощью файлов cookie. Я хотел бы, чтобы пользователи имели 30-дневный файл cookie, чтобы сохранить их некоторое время и усугубить необходимость входа в систему каждый раз, когда истекает их сеанс. Я написал часть кода «помню меня», и он хранит файл cookie. Я сохраняю только их имя пользователя и хэш-код md5 их пароля. Проблема здесь возникает, когда пришло время повторно аутентифицировать их. Обычно я просто делаю это, сравнивая сохраненное имя пользователя с хэшем пароля этого пользователя из базы данных. Что усложняет ситуацию, так это то, что у меня нет прямого доступа к именам пользователей и паролям. Все они хранятся в/etc/passwd и/etc/shadow, а логины обрабатываются модулем PAM. pam_auth ожидает простого текстового имени пользователя и пароля обычного текста.
Кажется, мои единственные альтернативы - либо хранить пароль в виде обычного текста, либо с помощью обратимого шифрования, но мне не особенно нравится любая из этих идей.
Есть ли здесь лучшие решения?
Возникли ли какие-либо возможные проблемы, связанные с установлением времени жизни сеанса на 2592000 (30 дней)? – DWilliams
Я ничего не знаю, и я не думаю, что в документации есть какие-либо заметки, но я никогда не пробовал работать с PHP-сессией. – jlamp