Auth 套件
Auth 套件在 Fuel 裡提供一个标准化的認證介面。 这使得我們的使用者能编寫自己的驅动程序,并且輕鬆地将新的驅动程序與舊的程式码整合, 以保持基本方法一致。
撰寫你自己的驅动
撰寫驅动可以兩種方式達成。透過擴充 Auth 驅动类別以從零開始建立一个新驅动, 或擴充一个存在的类別并在需要的地方變更它們。
一个 Auth 驅动包含三種类型的类別一起運作,这些是:
擴充認證类別
像这樣擴充这些类別:
<?php
class Auth_Login_Mydriver extends \Auth\Auth_Login_Driver
{
// 在驅动类別裡實现所有需要的函式和變数定義。
}
/* End of file app/classes/auth/login/mydriver.php */
實现函式
當擴充 Auth 驅动类別時,注意每一个需要實现的函式的預期回傳值。 每一个方法提供一个範例,如此你知道需要回傳什么。下面是一个範例:
/**
* 取得目前登入使用者的 ID
* 以此形式:array(driver_id, user_id)
*
* @return array
*/
abstract public function get_user_id();
上面的程式码告訴你每一个驅动都應該有 get_user_id 函式。 就像所有你擴充的有抽象函式的类別,这些函式必須在擴充的类別中被定義。 此函式的回傳类型提供在註解中,在这裡是 array(driver_id, user_id)。 为了让你的驅动與其他驅动并肩合作, 確認你回傳正確的值或你的驅动中斷協定。
这裡是相同的函式來自 Simpleauth 驅动的實现。
/**
* 取得使用者的 ID
*
* @return Array 包含此驅动 ID &使用者 ID
*/
public function get_user_id()
{
if (empty($this->user))
{
return false;
}
return array($this->id, (int) $this->user['id']);
}
一旦你让新驅动的一切都到位,取代或添加到 auth 配置。
// 在 config/auth.php 中的陣列
// 添加做为第二个驅动
'driver' => array('Simpleauth', 'Mydriver'),
// 或取代存在的驅动
'driver' => array('Mydriver'),