Не собираюсь делать конкретных классов и примеров, речь о другом. Т.к. http нас обламывает с однозначной идентификацией клиента, приходится делать костыли, на данный момент думаю такой костыль, хочу сделать как правильнее и, главное, надежнее. Пока для хранения идентификатора на клиенте использую куки (дальше без особых проблем можно привинтить и GET/POST), это несколько обламывает тех, у кого куки отключены, но придется. При отправке формы авторизации генерирую хеш_1, кладу его в базу (куда именно ниже), на основании хеш_1 генерю хеш_2 и вместе с user_id кладу в куку. При обновлении страницы, беру хеш_2 и user_id из куков, по базе смотрю какой хеш_1 у user_id, генерю из него "хеш_2" и сравниваю с куковским. Вроде бы все, как по шкале нормальности такой подход, есть ли другие? Так же возникает вопрос, где хранить хеш_1 - в поле таблицы юзеров или в сессии? Лично мне сессия не нужна как таковая, мне нужно отделять лишь зарегеных юзеров, а гости сами по себе. И на основании чего генерить хеш_1? Юзерагент наверное, ну может IP, и то и другое не очень защищено (даже с солью user_id). Какие есть мысли по этому поводу? Хранение хешь в сессии не нравится по причине пересозданий этих сессий (особенно поисковиками), а это лишние запросы и вообще как то ненадежно (юзаю свои на базе).
PHP: <?php $_COOKIE['login'] = uniqid(); $_COOKIE['pwd'] = md5( uniqid() + SALT ); cookie_login и cookie_pwd храню в бд, отдельно от login и pwd Если у пользователя нет сессии, поднимаю его из БД по кукам.