撰寫你自己的驅动 - Auth 套件
优质
小牛编辑
131浏览
2023-12-01
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'),