2012-08-17 82 views
0

我正在爲應用程序使用yii框架,我需要一組用戶使用遠程服務器進行驗證。在Yii框架中使用遠程服務器驗證用戶

我在我的應用程序中有幾個用戶角色。爲前:

  • 超級管理員
  • 品牌管理
  • 客戶 等...

所有客戶記錄都在一個遠程MySQL數據庫。我必須通過我的yii應用程序認證客戶。我的yii應用程序將託管在不同的服務器上。

請假設我可以在遠程服務器中放置一個php腳本來響應我的發佈請求。

我需要寫我自己的UserIdentity類來做到這一點嗎?

請幫我解決這個問題。 謝謝

回答

2

我不認爲你需要把任何腳本在您的遠程服務器上,你需要的是

1. Access the remote Db, and Yii allows the use of [multiple-databases][1]. 
2. Adjust the model(s) you are using for Authentication/Authorization (usually the User model) to load it's data from the remote database 

對於第一個任務:

// protected/main/config.php 

return array(
... 
'components' => array(
    'db' => array(
     'connectionString' => 'mysql:host=dbserver1;dbname=my1db', 
     ... 
    ), 
    'remotedb' => array(
     'connectionString' => 'mysql:host=adserver2;dbname=advertisingDB', 
     'username'   => 'username', 
     'password'   => '***********', 
     ... 
     'class'   => 'CDbConnection'   // DO NOT FORGET THIS! 
    ), 

對於第二個任務:

對於您使用的型號身份驗證 & 授權,您將需要覆蓋getDbConnection()函數從遠程服務器加載所需的數據。 檢查Wiki如何

而且,是的。您需要編寫自己的UserIdentity類,實際上它是一項常用任務,即使您不使用遠程Db也是如此,因爲它的默認邏輯僅僅是一個示例,並非真正的生產站點。

GoodLuck!

+0

嗨,Nimir,謝謝你的幫助。作爲您的建議,我創建了另一個遠程用戶身份驗證用戶模型。現在一切都很好! – Shakeel 2012-08-21 08:58:40

+0

很高興工作:) – Nimir 2012-08-21 19:43:16

0

是的,你將不得不重寫組件UserIdentity並創建自己的規則認證。

相關問題