2014-02-13 24 views
0

當用戶提交登錄表單時,用於驗證該用戶而不是使用cakephp默認驗證$this->Auth->login()我想調用一些基於java的api,我將發送用戶輸入的用戶ID和密碼,如果用戶是真實的,那麼api將返回用戶詳細信息,如果不是,則爲false我想使用cakephp AuthComponent來完成剩下的事情(例如:會話等),但只是爲了驗證用戶,我想調用我的api。這可能嗎 ?我可以重寫一些核心方法嗎?用我自己的函數/ api驗證用戶?

謝謝。

+0

我沒有CakePHP的專家,但我想你可以填充/手動創建基於你所得到的來自API調用後面的驗證對象。 – Newbi3

回答

0

您可以創建在Controllers/Component/Auth文件夾路徑延伸BaseAuthenticate類。在那裏你必須實現一個authenticate()方法,如果成功記錄,必須返回一個包含用戶數據的數組,否則返回false。

那你告訴Auth組件爲使用自定義身份驗證時,您可以通過調用它的AppController:

'Auth' => array(
    'authenticate' => array(
     'yourNewAuth' => array(
      //other stuff 
     ) 
    ) 
) 
+0

謝謝。我創建了認證類。如果我返回用戶詳細信息數組,但如果返回FALSE(即,用戶未找到),那麼cakephp會忽略該信息並將用戶登錄(忽略我的類),但它應該顯示錯誤。 – ManinGreen

+0

看起來像,cakephp運行我的後運行它自己的默認身份驗證功能。我怎樣才能解決這個問題\? – ManinGreen

相關問題