get_id()
回传驱动的唯一 ID。这可被用于识别驱动,或用来选择一个特定的驱动实例。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 驱动 ID 字串。 |
範例 |
|
Auth 套件在 Fuel 里提供一个标准化的认证介面。 这使得我们的使用者能编写自己的驱动程序,并且轻鬆地将新的驱动程序与旧的程式码整合, 以保持基本方法一致。
此驱动是所有 Auth 登入驱动的基础类别。它被定义为一个抽象类别, 该类别包含了通用于所有登入驱动的所有方法, 以及定义给任何登入驱动必须实现的所有抽象方法。
一个登入驱动可以载入它所依赖的额外驱动。一般情况下,这些是 Group 驱动。 但你的实现情况可以是引进和使用自订的驱动类型。要做到这一点,添加此结构到你的驱动类别:
// 当载入此登入驱动时自动载入 Simplegroup 群组驱动
// 这也定义了此驱动有额外的使用者纪录栏位 getter
protected $config = array(
'drivers' => array('group' => array('Simplegroup')),
'additional_fields' => array('profile_fields'),
);
为了易于使用,Auth 套件在登入驱动的公开方法提供一个静态介面。 因为这个原因,登入基础驱动也定义 member() 和 has_access() 方法, 它提供了在群组和 ACL 驱动中静态存取这些方法。
使用静态介面,你能做到
// 回传 'simpleauth'
$id = Auth::get_id();
来代替
// 回传 'simpleauth'
$id = Auth::instance()->get_id();
这只在 Auth 配置中的 "verify_multiple_logins" 设为 false 时运作, 因为你不能对映一个静态介面到多个活跃的登入驱动程序!
通用方法被定义在登入基础驱动,而且能透过扩充到达所有的 Auth 登入驱动。这些方法提供功能来建立和取回实例、设定和取得配置值、 以及密码杂凑和对 ACL 和 Group 驱动存取的通用方法。
定义在类别中而没记录在此的方法是内部使用,而且不应该直接被呼叫。
回传驱动的唯一 ID。这可被用于识别驱动,或用来选择一个特定的驱动实例。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 驱动 ID 字串。 |
範例 |
|
设定一个驱动配置值。
静态 | 否 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
参数 |
| |||||||||
回传 | 空 | |||||||||
範例 |
|
取得一个驱动配置值。
静态 | 否 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
参数 |
| |||||||||
回传 | 混合 | |||||||||
範例 |
|
回传是否驱动支援访客登入(一个未认证的访客使用者)。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 布林 |
範例 |
|
预设情况下,此方法回传 'false'。如果你的驱动有支援访客登入, 在你的驱动类别中覆盖载入此方法。
回传一个描述目前登入使用者的阵列,总是包含至少一个显示名称和一个 email 地址。在驱动中可配置额外栏位或透过 阵列请求,但它们必须在该驱动内有一个 get_user_fieldname() 方法是可取得的。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | 阵列 | ||||||
範例 |
|
你可以在驱动配置阵列中定义 'additional_fields',以在你呼叫此方法时让它们预设被包含。
回传一个所给密码的 base64 编码杂凑值。此方法使用非常安全的 pbkdf2 杂凑演算法。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | 字串 | ||||||
範例 |
|
你所开发的每个登入驱动必须提供这些所有的方法,且必须回传此处记录的值。
内部类别方法用来检查目前使用者是否有有效的 session。由你决定你的驱动要如何确定它。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 布林,true 如果有一个有效使用者 session,如果没有则 false。 |
此方法是藉由 Auth::check() 呼叫,它不应该被应用程序直接呼叫。
validate_user 方法验证一个登入请求。由你决定你的驱动要如何动作。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 混合。它应该回传 false 如果使用者未通过验证。任何被计算为 true 的值被认为是有效的。 |
如果它不是 false,应用程序不应假设关于回传的值!
login 方法执行一个登入请求。它应该呼叫 validate_user() 来验证该请求。由你决定你的驱动要如何动作。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 布林。如果登入成功回传 true,否则是 false。 |
如果你的驱动有支援访客登入,它必须在回传 false 之前设定该访客。
logout 方法登出目前登入的使用者。由你决定你的驱动要如何动作。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 布林。如果登出成功回传 true,否则是 false。 |
如果你的驱动有支援访客登入,它必须在成功登出之后,设定该访客为目前使用者。
get_user_id 方法回传包含驱动 ID 值和目前登入使用者 ID 的阵列结构。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 混合。如果使用者是登入的,回传一个 array(driver_id, user_id) 形式的阵列,否则是 false。 |
如果你的驱动有支援访客登入,它必须回传有(虚拟)user_id 或你的访客的阵列,而不是 false!
get_groups 方法回传指派给资料者的使用者群组。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 混合。如果使用者是登入的,回传一个 array(array(driver_id, group_id), array(driver_id, group_id), etc) 形式的阵列,否则是 false。 |
如果你的驱动有支援访客登入,它必须回传你的访客使用者群组阵列,而非 false!
get_email 方法回传指派给目前登入的使用者 email 地址。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 混合。如果使用者登入回传 email 地址,如果目前使用者没有定义 email 地址,或使用者没有登入回传 false。 |
如果你的驱动有支援访客登入,别忘了回传 false 如果该访客没有定义一个 email 地址!
get_screen_name 方法回传目前登入的使用者显示名称。
静态 | 否 |
---|---|
参数 | 无 |
回传 | 混合。回传包含名称的字串,或 false 如果使用者没有登入。 |
如果你的驱动有支援访客登入,它必须回传访客显示名称,而非 false!