Где разместить действия, связанные с логином / аутентификацией, в MVC - PullRequest
0 голосов
/ 17 марта 2010

Я искал вокруг и обнаружил, что при реализации модуля аутентификации в архитектуре MVC некоторые люди предпочитают помещать связанные с входом действия в пользовательский контроллер, в то время как другие помещают его в контроллер, предназначенный только для аутентификации.

В псевдо-Java-подобном коде:

class UserController extends Controller {

    public login() {
        //...
    }
}

Доступ с помощью http://mydomain.com/user/login.

против

class AuthController extends Controller {

    public login() {
        //...
    }
}

Доступ с помощью http://mydomain.com/auth/login.

Я хотел бы знать, какой подход лучше и почему. То есть, если вообще есть какая-то разница.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 17 марта 2010

IMO:

  • Материал, обрабатывающий фактический вход в систему, должен находиться в контроллере, как UserController, который вы предложили.
  • Постоянная аутентификация (например, проверка, вошел ли пользователь в систему) может быть просто некоторыми функциями в UserModel, которые вы вызываете с любого контроллера.

В зависимости от ситуации вам может потребоваться какая-то глобальная функция, которая перенаправляет на страницу входа, если пользователь не вошел в систему.

1 голос
/ 17 марта 2010

Я предпочитаю первый подход, исходя из простых соображений, что аутентификация - это действие, относящееся к пользователю. И вообще, я предпочитаю, чтобы мои контроллеры отражали реальные сущности, с которыми я сталкиваюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...