當用戶提交登錄表單時,用於驗證該用戶而不是使用cakephp默認驗證$this->Auth->login()
我想調用一些基於java的api,我將發送用戶輸入的用戶ID和密碼,如果用戶是真實的,那麼api將返回用戶詳細信息,如果不是,則爲false我想使用cakephp AuthComponent來完成剩下的事情(例如:會話等),但只是爲了驗證用戶,我想調用我的api。這可能嗎 ?我可以重寫一些核心方法嗎?用我自己的函數/ api驗證用戶?
謝謝。
當用戶提交登錄表單時,用於驗證該用戶而不是使用cakephp默認驗證$this->Auth->login()
我想調用一些基於java的api,我將發送用戶輸入的用戶ID和密碼,如果用戶是真實的,那麼api將返回用戶詳細信息,如果不是,則爲false我想使用cakephp AuthComponent來完成剩下的事情(例如:會話等),但只是爲了驗證用戶,我想調用我的api。這可能嗎 ?我可以重寫一些核心方法嗎?用我自己的函數/ api驗證用戶?
謝謝。
我覺得這涵蓋了它,在「創建自定義的驗證對象」
http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html
您可以創建在Controllers/Component/Auth
文件夾路徑延伸BaseAuthenticate
類。在那裏你必須實現一個authenticate()
方法,如果成功記錄,必須返回一個包含用戶數據的數組,否則返回false。
那你告訴Auth
組件爲使用自定義身份驗證時,您可以通過調用它的AppController:
'Auth' => array(
'authenticate' => array(
'yourNewAuth' => array(
//other stuff
)
)
)
謝謝。我創建了認證類。如果我返回用戶詳細信息數組,但如果返回FALSE(即,用戶未找到),那麼cakephp會忽略該信息並將用戶登錄(忽略我的類),但它應該顯示錯誤。 – ManinGreen
看起來像,cakephp運行我的後運行它自己的默認身份驗證功能。我怎樣才能解決這個問題\? – ManinGreen
可以設置AuthComponent :: $ sessionKey爲false,以確保AuthComponent不嘗試讀取來自會話的用戶信息。
我沒有CakePHP的專家,但我想你可以填充/手動創建基於你所得到的來自API調用後面的驗證對象。 – Newbi3