Как лучше всего использовать функцию «запомнить меня»?

В рамках большого проекта, над которым я работаю, мы хотим интегрировать «запомнить меня» функция в процессе входа пользователя. Одно из предложений ведущего разработчика заключалось в том, чтобы просто сохранить свой 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.

Есть ли лучший способ добиться этого?

9
задан BenM 12 May 2011 в 09:05
поделиться