t4web / authentication
适用于ZF2的通用用户认证模块。
1.0.13
2016-08-28 08:53 UTC
Requires
- php: ^5.5 || ^7.0
- t4web/event-subscriber: ~1.0.0
- t4web/session: ^1.0
- zendframework/zend-authentication: ~2.5.0
- zendframework/zend-console: ~2.5.0
- zendframework/zend-eventmanager: ~2.5.0
- zendframework/zend-http: ~2.5.0
- zendframework/zend-modulemanager: ~2.5.0
- zendframework/zend-mvc: ~2.5.0
- zendframework/zend-servicemanager: ~2.5.0
- zendframework/zend-session: ~2.5.0
- zendframework/zend-view: ~2.5.0
Requires (Dev)
- phpunit/phpunit: ^4.8
- squizlabs/php_codesniffer: ^2.3
README
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
。
适配器
此模块包含两个内置适配器 PhpArray
和 Table
。
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