Лучшие практики входа / авторизации в среде PHP MVC
Я работаю с домашней MVC-ориентированной средой, и мне нужно реализовать страницу входа.
На данный момент, как это работает, каждый контроллер, которому требуется авторизация, вызывает его authorize()
метод, который в псевдокоде выглядит так:
protected function authorize() {
if (logged in) {
return true;
}
if (login form submitted) {
authorize/validate username/password
if (!valid) {
render login form
return false;
} else {
mark user logged in
return true;
}
} else {
render login form
return false;
}
}
Я хотел бы переместить эту логику в свой собственный LoginController, но для этого потребовалось бы "запомнить" исходный запрос, сохранить все данные POST и GET, а затем выполнить перенаправление, чтобы попасть в LoginController.
Каков наилучший способ входа пользователя с точки зрения хорошего дизайна MVC и принципа KISS?
1 ответ
Я не уверен, что вы используете данные сеанса, но я бы сохранил URL PATH для сеанса. Перенаправить на новый LoginController. После успешного входа в систему перенаправьте браузер на сохраненный URL-адрес PATH, найденный в данных сеанса. Код сеанса должен быть кодом помощника / библиотеки, а не в контроллере. Убедитесь, что вы очистили URL PATH также после того, как вход выполнен.