代码之家  ›  专栏  ›  技术社区  ›  rogeriopvl

在MVC中放置与登录/身份验证相关的操作的位置

  •  0
  • rogeriopvl  · 技术社区  · 16 年前

    我到处搜索,发现在MVC体系结构中实现身份验证模块时,有些人选择将与登录相关的操作放在用户控制器中,而另一些人则将其放在专用于身份验证的控制器中。

    在伪Java类代码中:

    class UserController extends Controller {
    
        public login() {
            //...
        }
    }
    

    访问方式 http://mydomain.com/user/login .

    VS

    class AuthController extends Controller {
    
        public login() {
            //...
        }
    }
    

    访问方式 http://mydomain.com/auth/login .

    我想知道哪种方法更好,为什么。也就是说,如果真的有什么不同的话。

    事先谢谢。

    2 回复  |  直到 16 年前
        1
  •  2
  •   DisgruntledGoat    16 年前

    国际海事组织:

    • 处理实际登录的东西应该在一个控制器中,比如 UserController 你建议的。
    • 持久身份验证(例如,检查用户是否登录)可能只是 UserModel ,从任何控制器调用。

    根据具体情况,如果用户没有登录,您可能需要某种全局函数来重定向到登录页面。

        2
  •  1
  •   Franci Penov    16 年前

    我更喜欢第一种方法,理由很简单,即身份验证是与用户相关的操作。总的来说,我更喜欢我的控制器来反映我的逻辑交易的现实实体。

    推荐文章