3.2. 数字认证
上一页 | 第 3 章 Zend_Auth | 下一页

## 3.2. 数字认证

### 3.2.1. 简介

数字认证是一个HTTP认证的方法，它通过不需要通过网络传递明文密码的方法对基本认证加以改进。

这个适配器允许依靠文本文件认证，该文本包括数行数字认证的基本元素：

- 用户名，例如 "`joe.user`"

- 领域，例如 "`Administrative Area`"

- 用户名，领域和密码的MD5 hash用冒号隔开

在下面的例子中，上面的元素用冒号隔开（密码是"`somePassword`"）：

    someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8

### 3.2.2. 规范（Specifics）

数字认证适配器`Zend_Auth_Adapter_Digest`需要若干输入参数：

- 文件名 － 认证查询被执行是所需的文件名

- 领域 － 数字认证领域

- 用户名 － 数字认证用户

- 密码 － 该领域用户的密码

在调用`authenticate()`之前必需要设定这些参数。

### 3.2.3. Identity

数字认证返回一个`Zend_Auth_Result` 对象，它由包含`realm`和`username`健值的数组的身份形成。在`authenticate()`被调用之前，分别设置和这些健值关联的数组值为相符的值。

    <?php
    require_once 'Zend/Auth/Adapter/Digest.php';

    $adapter = new Zend_Auth_Adapter_Digest($filename, $realm, $username, $password);

    $result = $adapter->authenticate();

    $identity = $result->getIdentity();

    print_r($identity);

    /*
    Array
    (
        [realm] => Some Realm
        [username] => someUser
    )
    */

上一页 | 上一级 | 下一页
第 3 章 Zend_Auth | 起始页 | 第 4 章 Zend_Cache