Система входа в систему на самом деле довольно проста, , но очень трудно сделать хорошо . Внедрение механизмов восстановления паролей, администрирование учетных записей пользователей как для пользователей, так и для администраторов, множество ролей, которые можно добавлять и редактировать, все это, конечно же, необходимо делать безопасным образом.
Добавьте к этому OAuth и OpenID, системы входа в систему являются одной из самых сложных частей многих современных приложений.
Я бы рассмотрел , как другие решают проблему , есть библиотеки и компоненты, такие как Zend_Acl , которые могут помочь значительно облегчить задачу и избежать некоторых базовых проблем. вы встретите При этом ДЕЙСТВИТЕЛЬНО исследуйте идеи, которые у вас есть, я имею в виду, что это здорово, что вы делаете, и я вовсе не говорю это, чтобы вас обескуражить. Я начал по тому же пути, по которому вы идете, много лет назад.
При этом у меня есть несколько вопросов к вашему новому дизайну. Функция newAccount, это единственные параметры, необходимые для этой функции? Вы можете рассмотреть возможность передачи объектов в функции, которые требуют много параметров, таким образом, вы можете воспользоваться type hinting . Функция login (), почему для параметров установлено значение по умолчанию 0? Это действительно значения по умолчанию для этой функции? На первый взгляд, может быть, лучше было бы написать $ email = null и $ password = null, но можно ли войти в систему без адреса электронной почты / пароля? Если логика вашего приложения основана на установке этих значений, вполне нормально иметь сигнатуру функции, которая обеспечивает выполнение логики. Я думаю, это здорово, но продолжай инициативу и будь любопытным.
Счастливого кодирования, друг