t4web/authentication

适用于ZF2的通用用户认证模块。

1.0.13 2016-08-28 08:53 UTC

This package is auto-updated.

Last update: 2024-08-26 18:15:43 UTC


README

主分支:Build Status codecov.io Scrutinizer Code Quality

zf2认证模块

内容

简介

非常简单的认证方式 - 定义账户配置、登录名和密码并使用。

安装

主要设置

通过克隆项目

将此项目克隆到您的 ./vendor/ 目录中。

使用Composer

在您的 composer.json 中添加此项目

"require": {
    "t4web/authentication": "~1.0.0"
}

现在运行以下命令来告诉Composer下载Authentication

$ php composer.phar update

安装后

在您的 application.config.php 文件中启用它。

<?php
return array(
    'modules' => array(
        // ...
        'T4web\Authentication',
    ),
    // ...
);

配置

为了定义哪些页面需要授权,您可以重新声明 need-authorization-callback,默认情况下

'need-authorization-callback' => function(RouteMatch $match) {
    $name = $match->getMatchedRouteName();

    if ($name == 'auth-login') {
        return false;
    }

    if (strpos($name, 'admin') !== false) {
        return true;
    }

    return false;
},

为了更改认证登录表单布局,您可以定义 layout 路由参数;为了更改成功授权后的重定向URI,您可以定义 redirect-to-url 路由参数

'router' => array(
    'routes' => array(
        'auth-login' => array(
            'options' => array(
                'defaults' => array(
                    'layout' => 'layout/my_auth_layout',
                    'redirect-to-url' => '/some/uri',
                ),
            ),
        ),
    ),
),

默认情况下,认证使用php数组进行认证存储,但您可以编写自己的

'service_manager' => [
    'factories' => [
        Zend\Authentication\Adapter\AdapterInterface::class => Adapter\MyAdapter::class,
    ]
]

Adapter\MyAdapter 必须实现 Zend\Authentication\Adapter\ValidatableAdapterInterface

适配器

此模块包含两个内置适配器 PhpArrayTable

PhpArray适配器

此适配器由默认配置使用。要定义登录名和密码,只需在配置中的 auth-accounts 部分描述即可

'auth-accounts' => [
    'someUser1' => 'str0ngp@ssw0rd',
    'someUser2' => '111',
],

Table适配器

这是对 Zend\Authentication\Adapter\DbTable\CallbackCheckAdapter 的包装,要开始使用,请在您的配置中定义它

'service_manager' => [
    'factories' => [
        Zend\Authentication\Adapter\AdapterInterface::class => \T4web\Authentication\Adapter\TableFactory::class,
    ]
],

并描述 auth['table-adapter'] 配置

'auth' => [
    'table-adapter' => [
        'table-name' => 'users',
        'identity-column' => 'email',
        'credential-column' => 'password',
    ],
],

测试

从认证模块目录运行单元测试。

$ codeception run unit

要运行功能测试,您需要在项目根目录中创建 codeception.yml,如下所示

include:
    - vendor/t4web/authentication  # <- add authentication module tests to include

paths:
    log: tests/_output

settings:
    colors: true
    memory_limit: 1024M

之后,您可以从项目根目录运行功能测试

$ codeception run