存储驱动程序(Storage drivers)

存储驱动程序(Storage drivers) -- 介绍

综述

PEAR::Auth 使用许多贮藏容器保存登录数据。下面将对它们进行介绍。如果包所带的容器不能满足你的需求,你也可以很容易的自定义一个。

数据库

PEAR::Auth 使用 PEAR::DB 抽象层访问数据库。这意味着你可以使用所有DB抽象层支持的数据库来存放登录数据。

Auth constructor() 中数据存储类型的详细参数(The storage-specific argument)是一个数组 。

表格 21-1. 数组关键字和值

关键字描述默认值
"dsn" 一个有效和良好的形式 DSN . ""
"table" 数据库表的名称,这里存储了验证数据. "auth"
"usernamecol" 存放用户的列的名称。 "username"
"passwordcol" 存放MD5编码的密码的列的名称,请确定密码的字段最多只能存放32个字符。 "password"

文件

Auth constructor() 中数据存储类型的详细参数是 passwd-style 文件的文件名.

SMBPasswd

这个贮藏容器为验证SAMBA smbpasswd文件做好准备. Auth constructor() 中数据存储类型的详细参数是 SAMBA passwd-style 文件的文件名。

IMAP

这个贮藏容器连接指定的IMAP服务器并且尝试使用指定的用户名密码登录 .

Auth constructor() 中数据存储类型的详细参数是一个数组。

表 21-2. 数据的关键字和值

关键字描述默认值
"host" IMAP服务器的主机名或者IP地址 "localhost"
"port" IMAP服务器的端口 "143"

LDAP

Auth constructor() 中数据存储类型的详细参数是一个数组。

表 21-3. 数组的关键字和值

关键字描述默认值
"host" 访问的主机名或者IP地址 "localhost"
"port" 访问LDAP服务器的端口 "389"
"basedn" 基础著名的( distinguished )名字 "o=netsols,c=de"
"userattr" 定义请求的属性 "uid"

POP3

这个贮藏容器连接到指定的POP3服务器并且尝试用指定的用户名密码登录.

Auth constructor() 中数据存储类型的详细参数是一个字符串,它的形式是 server:port 或者 server.

RADIUS

你需要Auth_RADIUS和PECL radius才能使这个容器工作

Auth constructor() 中数据存储类型的详细参数是一个数组。

表 21-4. 数组的关键字和值

关键字描述默认值
"servers"

RADIUS服务器的数组,包括: host, port, shared secret, timeout, maxtries.

参数host指定服务器主机,也可以是完整的有效域名或者文本形式的 由...连接的四个小于255的数字代表的.参数port指定连接服务器的UDP端口。如果port赋予0,库将会查询在网络服务数据库中radius/udp的入口,并使用查询到的端口。如果没有找到入口,库会使用标准验证的RADIUS 端口(1812)。 The shared secret for the server host is passed to the secret parameter. RADIUS协议忽略The RADIUS protocol ignores all but the leading 128 bytes of the shared secret. 接受服务器回复的时间限制通过参数timeout指定,单位是秒。 重复请求的最大次数通过参数maxtries设置。

服务器至多指定为10。当给定多个服务器是,他们会以循环的形式进行尝试直到接受到有效的响应,或者直到服务器的最大尝试次数。

array("localhost", 0, "testing123", 3, 3)
"authtype"

确认请求的验证方法。可能值有: PAP, CHAP_MD5, MSCHAPv1, MSCHAPv2.

他们依赖于不同的方法。对于所有的验证方法除了PAP,你需要Crypt_CHAP包,当你使用MS-CHAP你还需要mhash 扩展(extension)。

"PAP"

SOAP

Auth constructor() 中数据存储类型的详细参数是一个数组。

表 21-5. 数组的关键字和值

关键字描述默认值
"endpoint" 服务定位的URI。  
"namespace" web服务的命名空间  
"method" 你想要调用的SOAP方法。  
"encoding" 所使用的内容编码 (e.g. utf8).  
"usernamefield" 用户名存放的字段名。  
"passwordfield" 密码存放的字段名。  

vpopmail

这个容器使用存在的vpopmail服务来验证用户名和密码。

它不需要详细的数据存储类型参数

自定义贮藏容器

使用你自己的贮藏容器的例子

这是一个自定义Auth贮藏容器的框架。

这里是如何使用它。