我非常新的CakePHP非常和善和我一起承擔。我正在做一個小小的任務,我已經完成了很多事情,但是我遇到了一個問題。我的任務有兩種不同的用戶類型,我需要兩個不同的登錄名,或者可能是一個登錄名將重定向他們。我閱讀了有關使用用戶模型,控制器和表的官方教程,但問題在於它僅適用於一種用戶類型。我想要的是,一旦我的應用程序打開,顯示登錄頁面,並根據用戶類型(管理員或員工)將他們重定向到其各自的索引頁面。 我已經創建了員工表和管理員表,並且都包含用戶名和密碼字段。教程說用戶表應該有用戶名和密碼字段,但我不想使用用戶表,因爲我已經在這兩個表中都有這些字段。所以有可能根本不使用用戶表,並使用我的當前表進行用戶登錄和認證。請引導我,因爲我在過去的幾個小時裏面遇到了這個問題。非常感謝您提供的幫助或指導。CakePHP的多個用戶類型登錄
0
A
回答
1
您只能使用一個模型(User
)並且有一個名爲type
的字段,其值可以是admin
和employe
。
這樣你就不必在多個表中相同的字段,你就可以只有一個登錄表單,並在用戶登錄後,你可以將用戶重定向到正確的頁面。
在Auth
組件,你將永遠知道當前登錄的人是什麼類型的用戶,這樣你就可以在其他控制器使用此。
在AppController
,你可以有
public $components = array(
'Auth' => array(
'loginAction' => array(
'controller' => 'Users',
'action' => 'login'
),
'loginRedirect' => array(
'controller' => 'Users',
'action' => 'dashboard'
),
'logoutRedirect' => array(
'controller' => 'pages',
'action' => 'display',
'home'
),
'authorize' => array('Controller')
)
);
的UsersController
- dashboard
方法,用戶剛剛登錄後會被調用,所以在這裏你可以得到用戶類型和重定向到正確的頁面。
1
您的邏輯是不是很健全。如果管理員和用戶具有相同的用戶名會怎麼樣?所有用戶都應該在同一張桌上,區別爲user_type_id
或同等表。
但是,如果你要堅持你目前的方案和讓他們在同一個頁面,那麼你只剩下嘗試登錄的人作爲一個用戶,如果成功重定向到用戶的網頁登錄,如果失敗再次作爲管理員,如果它成功重定向到管理頁面,如果失敗意味着用戶名/密碼對於這兩種情況都是無效的。這樣至少可以得到的一些種基本安全。
+0
或者只是一個簡單的角色/ role_id字段。提示:[微小](http://www.dereuromark.de/2011/12/18/tinyauth-the-fastest-and-easiest-authorization-for-cake2/) – mark
相關問題
- 1. 登錄多個用戶類型
- 2. 登錄多個用戶
- 3. ASP.net多個用戶登錄
- 4. 登錄多個用戶
- 5. Json登錄多個用戶登錄在一個登錄頁面
- 6. cakephp用戶/登錄重定向到用戶/自動登錄
- 7. 確定類型的登錄用戶
- 8. 獲取用戶的登錄類型
- 9. cakephp阻止用戶同時從多個位置登錄
- 10. Cakephp一個登錄功能/多個登錄視圖
- 11. 登錄用戶從多個IdentityServer客戶
- 12. 在cakephp中多次登錄
- 13. cakephp 3多個身份驗證登錄
- 14. cakePHP登錄,多個控制器可能?
- 15. PHP多用戶登錄類或腳本
- 16. FTP登錄中的多個用戶名
- 17. CakePHP 2.3 - 單元測試用戶登錄
- 18. 執行用戶活動登錄CakePHP
- 19. cakephp cakeDC用戶登錄重定向
- 20. 登錄後註冊用戶CakePHP中
- 21. Cakephp:管理員登錄爲用戶onClick
- 22. CakePHP 3 - 無法手動登錄用戶
- 23. CakePHP登錄用戶名/密碼驗證
- 24. CakePHP - 無法使用Authcomponent訪問模型中登錄的用戶密碼::用戶
- 25. 用Twitter登錄CakePHP
- 26. 顯示登錄後的用戶名和用戶類型。 PHP
- 27. CAKEPHP登錄未登錄
- 28. Cakephp:在cakephp中登錄不同用戶的不同平臺
- 29. CakePHP AuthComponent使用Ajax無登錄登錄?
- 30. cakephp 3用於登錄另一個模型比用戶身份驗證
感謝您的回答,我明白你在說什麼,但loginRedirect和logutRedirect可以爲任何用戶不能同時定義,我已經將它定義爲員工。但是,如果用戶角色是管理員呢?在哪裏定義該條件?我可以使用兩個$組件,或者我需要在UsersController頁面上定義它?你能告訴我嗎? IT會非常有幫助。 – user3224207