当前位置: 首页 > 文档资料 > FuelPHP 中文文档 >

简介 - Auth 套件

优质
小牛编辑
116浏览
2023-12-01

Auth 套件在 Fuel 里提供一个标准化的认证介面。 这使得我们的使用者能编写自己的驱动程序,并且轻鬆地将新的驱动程序与旧的程式码整合, 以保持基本方法一致。

简介

建立一个适合每一个人或每一个实作的 Auth 套件是不可能的。 做为一个框架我们不希望强迫你如何做 Auth, 但我们想要让你方便去建立你自己的或使用别人的成品,这就是为什幺要有 Auth 套件。

介面包含三种类型的驱动(可被扩充到更多类型):logingroup & ACL。 登入驱动处理一个使用者登入,且能同时处理多个登入驱动。 例如一种情况是可以让使用者透过 Twitter 和本地使用者登入, 同时使用两个登入驱动。

做为下一步,你可以使用一个群组驱动组合两种类型的登入,该驱动不在乎你使用的类型。 最后但非最不重要的,你可以使用一个 ACL 驱动以给特定权限到那些群组。

上述仅仅是一个你可以如何使用它,而不是你 必须 如何使用它的範例。 阅读下一段以了解那些方法是通用介面的一部份,以及那些会被特定驱动: 撰写驱动

包含的驱动

Auth 套件配备两套驱动提供本地存取、使用一个或多个资料库表。

Simpleauth

正如名字所暗示的,这是一个基础驱动集。它使用一张资料库表来储存使用者资讯, 以及一个配置档案来储存关于群组、角色、及 ACL 的资讯。它在使用者纪录中的一个序列化阵列里储存使用者诠释资料。 它没有很多功能,但对大多数应用程序来说,它可以胜任。 记录在 这里

Ormauth

这个驱动集提供与 Simpleauth 驱动类似的功能,但储存所有关于使用者、 群组、角色及权限的资讯在资料库,并使用 ORM 模型来存取此资讯。除此之外, 它不在一个阵列中储存使用者诠释资料,而是独立的资料表,使用 ORM 的 EAV 容器功能来存取它。 其 API 几乎与 Simpleauth 相容,但不同的是,回传使用者、群组或角色资料的方法, 现在回传的是 ORM 物件而不是阵列。 记录在 这里

Auth 套件包含需要的迁移档案来建立这些驱动所需的资料表结构。 它使用 Auth 配置档案来确定要建立什幺,所以首先你需要配置它。

支援的类别

除了完整的驱动集,Auth 套件也包含支援类别, 它提供额外功能给一个或全部驱动。

Opauth

Opauth 是一个多提供者认证的PHP框架,并且安装做为一个 composer 套件。 它提供了使用 OAuth 或 OpenID 通讯协议的通用认证,并拥有大量针对受欢迎的 OAuth 平台认证的现成策略, 如 Facebook、Twitter、Github、等。

包含在 Auth 套件中的 Opauth 驱动会是 Opauth 及(目前)不管是 Simpleauth 或 Ormauth 之间的介面, 以便你可以连结 OAuth 帐号到本地帐号,对 OAuth 帐号使用本地 ACL 、等。 记录在 这里

安装

Auth 套件包含在 Fuel 的下载,你所需要做的就是在你的配置中启用它。

'always_load' => array(
	'packages' => array(
		'auth',
	),
),

配置

Auth 可以在 config/auth.php 档案配置,并使用以下的键:

参数类型预设描述
driver字串|阵列
array('Simpleauth')
要载入的登入驱动,第一个也会是 Auth::instance() 回传的预设值。
verify_multiple_logins布林
false
是否在一个驱动成功验证后持续检查登入, 这使得它可以在同一时间使用多种方式登入。
salt字串
'put_your_salt_here'
使用于密码杂凑的盐。
iterations整数
10000
在密码杂凑处理(Auth 使用 PBKDF2)中的迭代数(对密码的「加密」数量)。 迭代次数越多意味着更安全的密码,但会使用更多时间。太多迭代可能会崩溃你的伺服器!

注意 'verify_multiple_logins' 是一个驱动层级的设定,对登入驱动来说没有意义, 它也并不代表「允许一个使用者被多重登入」!

你的 auth 配置档案应该看起来像这样:

<?php

return array(
	// 驱动程序
	'driver' => array('Simpleauth'),

	// 设定为 true 以允许多个登入
	'verify_multiple_logins' => true,

	// 出于安全原因,用你自己的盐
	'salt' => 'Th1s=mY0Wn_$@|+',
);