Лучшие практики входа / авторизации в среде PHP MVC - PullRequest
1 голос
/ 27 июня 2010

Я работаю с домашним 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 Ответ

2 голосов
/ 12 сентября 2010

Я не уверен, что вы используете данные сеанса, но я бы сохранил URL PATH для сеанса.Перенаправить на новый LoginController.После успешного входа в систему перенаправьте браузер на сохраненный URL-адрес PATH, найденный в данных сеанса.Код сеанса должен быть кодом помощника / библиотеки, а не контроллером.Убедитесь, что вы очистили URL PATH также после того, как вход выполнен.

...