2013-05-29 45 views
2

你好PHP及Yii的朋友,Yii的,自定義用戶驗證,使用外部框架API

我覺得這是不是有人用的Yii更多的經驗真正chalenge。 Anny引用或一般想法將意味着很多,因爲我對Yii來說很新。 提前感謝您的觀點!

場景:

Yii的Web應用程序和用戶驗證的定製方案對本地數據庫,但外部站點數據庫用戶的存在基於的問題,這是自己的驗證,並很好地覆蓋公共可訪問的API。

我認爲在Yii應用程序和外部API之間創建橋接模塊將提供將用於爲成員用戶創建特定Yii模型和視圖的數據。

但是爲了使這個模型和視圖只對用戶/成員公開,我必須用cUrl的幫助來創建一個自定義驗證部分,其中包含我作爲外部API驗證函數的返回類型獲取的數據。

實施例i的數據獲得作爲從外部API用戶驗證的結果:

[result] => success 
[userid] => 2 
[passwordhash] => 04462efbd433dbb66ca25b67145a1848ed9e1044 

問題:
如何定製基於i上述數組中獲取值的Yii用戶驗證?

+0

創建模型類方法'findByPk'來檢索數據。然後像使用其他數據庫模型一樣在UserIdentity中使用模型。 –

+0

@Imre是的,謝謝Imre,所以要創建一個不使用數據庫連接的自定義模型,而是與外部API的連接,並使用檢索到的數據填充其字段並使用該數據進行驗證? – l0lander

回答

1

您還需要在註冊後驗證用戶是否存在,例如,在每次登錄時。所以你應該:

  1. 寫一個應用程序組件調用遠程API並確定用戶是否有效。
  2. 編寫一個自定義驗證器類來調用此組件來執行驗證。見documentation,你想寫自己的課延伸CValidator
  3. 收件附加代碼來調用用戶登錄後的驗證組件英寸
+0

謝謝@DCoder,探索解決方案,取得了一些突破,完成了一些成功的測試,但仍在探索組件解決方案......以正確的方式完成 – l0lander