2010-03-16 46 views
0

我周圍搜索並發現,在MVC體系結構中實現身份驗證模塊時,有些人選擇將用戶控制器中的登錄相關操作置於用戶控制器中,而其他人將其放置在控制器中僅專用於身份驗證。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

IMO:

  • 的東西處理實際的登錄應該是一個控制器,像UserController你的建議。
  • 持久認證(例如檢查用戶是否已登錄)可能只是UserModel中的某些功能,您可以從任何控制器調用該功能。

根據不同的情況,你可能需要某種形式的重定向到登錄頁面,如果用戶沒有登錄全局函數。

1

我更喜歡第一種方法,簡單地推理認證是與用戶有關的操作。一般來說,我更喜歡我的控制器來反映我的邏輯交易的真實生活實體。