В рамках большого проекта, над которым я работаю, мы хотим интегрировать «запомнить меня» функция в процессе входа пользователя. Одно из предложений ведущего разработчика заключалось в том, чтобы просто сохранить свой PHP session_id () в файле cookie и в своей записи в базе данных. Когда они в следующий раз посетят сайт, найдите session_id в файле cookie и получите их учетные данные.
Это отлично подходит для пользователей, работающих за одним компьютером, но идет вразрез с принципами облачных вычислений (это веб-приложение), где Пользователь может получить доступ к сайту с разных компьютеров и может захотеть запомнить свои данные на всех них. Например, установка их session_id на одном компьютере, а затем повторная установка его на другом означает, что они будут отключены от первого компьютера.
Я склонен предложить команде создать отдельную таблицу базы данных, в которой есть следующая структура:
+----------------+----------------+------------------+--------------------+
| user_id | session_id | ip_address | initial_login_date |
+----------------+----------------+------------------+--------------------+
| 5 | 123456789101 | 192.168.0.1 | 1305194639 |
+----------------+----------------+------------------+--------------------+
| 5 | 021456789101 | 255.255.255.255 | 1305194639 |
+----------------+----------------+------------------+--------------------+
Все, что нам нужно сделать, это найти их session_id в таблице, и выберите user_id.
Есть ли лучший способ добиться этого?