Что нужно иметь в виду:
- Аутентификация;проверка пользователя - это то, кем они себя называют.
- Авторизация;обеспечение того, что пользователю разрешено делать то, что он пытается.
- Бухгалтерский учет;запись и аудит того, что они делают.
Для аутентификации вам необходимо отслеживать «пользователей», подключенных и (часто) прошедших аутентификацию в системе.Это требует знания идентификатора (имя пользователя, адрес электронной почты или другой уникальный токен) и парольной фразы.Сохраните имя пользователя и парольную фразу где-нибудь, но никогда не сохраняйте парольную фразу без ее защиты сначала : не используйте алгоритм дайджеста сообщений (например, MD5 или SHA1) с солью.Используйте взамен bcrypt .Хотя использование платформы здесь неплохо, не всегда полагайтесь на нее, чтобы делать правильные вещи.
Для авторизации вам необходимо отслеживать, какие действия предпринимает пользователь, и проверять права доступа.чтобы увидеть, разрешено ли им делать действие, которое они пытаются.Это может быть достигнуто несколькими различными способами, и все они зависят от предметной области - вы не часто найдете наглядный пример этого, хотя вы можете найти множество платформ, которые могут вам помочь.
Для учета необходимо записать, какие действия выполняет пользователь.Это наиболее часто игнорируемая часть любого приложения, но когда случаются плохие вещи, крайне важно иметь знания, и реконструкция их из журналов доступа веб-сервера становится кошмаром.Опять же, это зависит от домена, но хорошая структура должна облегчить его реализацию.
Наконец, связывание всех трех из них - сессия вашего пользователя.Когда вы вызываете 'session_start ()' в PHP, он отправляет клиенту идентификатор сеанса в виде файла cookie и сохраняет файл на жестком диске сервера, содержащий содержимое $_SESSION
для этого пользователя.Вы также можете настроить PHP для переопределения функциональности по умолчанию и сохранения данных сеанса, используя session_set_save_handler .Затем вы можете сохранить эту информацию в базе данных.
TL; DR : используйте платформу, такую как CodeIgniter, Drupal, Yii или какое-либо другое активно разработанное решение.Подавляющее большинство фреймворков будет делать все, что вам нужно, и если они этого не делают, их можно очень легко изменить. Не создавайте свой собственный фреймворк для этого;используйте тот, который уже доступен.