icybee / module-users-noncelogin
为忘记密码的用户提供一次性登录票据。
Requires
- php: >=5.4.0
- icanboogie/activerecord: ~2.1
- icanboogie/i18n: ~2.0
- icanboogie/module-installer: ~1.2
- icybee/module-registry: ~2.0
- icybee/module-users: ~2.0
Requires (Dev)
- brickrouge/brickrouge: ~2.1
- icanboogie/icanboogie: ~2.0
README
为忘记密码的用户提供一次性登录票据,允许他们在重置密码的同时登录。
请求票据
票据通过 NonceLoginRequestOperation 操作请求。可以使用 api:nonce-login-request 和 api:inline-nonce-login-request 路由为此操作格式化 URL。该操作只能使用 POST HTTP 方法执行。
<?php use ICanBoogie\HTTP\Request; $app = ICanBoogie\app(); $request = Request::from([ 'uri' => $app->routes['api:nonce-login-request'], 'is_post' => true, 'is_xhr' => true, 'request_params' => [ 'email' => "olivier.laviale@gmail.com" ] ]); # or $request = Request::from([ 'uri' => $app->routes['api:inline-nonce-login-request']->format(['email' => "olivier.laviale@gmail.com"]), 'is_post' => true, 'is_xhr' => true ]);
为防止滥用,在请求同一用户的另一个票据之前需要一段冷却期。如果在冷却期结束前尝试请求票据,将抛出 TicketAlreadySent 异常。
如果一切顺利,将向用户发送一条包含 NonceLoginForm 链接的消息。该消息由附加到 Icybee\Modules\Users\NonceLogin\NonceLoginRequestOperation::process 事件的钩子发送,使用 mail() 原型方法发送,该方法通常由 icanboogie/mailer 包提供。
修改消息或发送它的邮件发送器
如果 ICanBoogie\Core::mail() 方法由 icanboogie/mailer 包提供,则可以使用 Icybee\Modules\Users\NonceLogin\NonceLoginRequestOperation::mail:before 事件修改消息或发送它的邮件发送器。
异常
定义了以下异常
- TicketAlreadySent:在冷却期结束前尝试请求票据时抛出的异常。
要求
该软件包需要 PHP 5.4 或更高版本。
安装
推荐通过 Composer 安装此软件包。
$ composer require icybee/module-users-noncelogin
此模块是 Icybee 所需的模块之一。
克隆存储库
该软件包可在 GitHub 上找到,可以使用以下命令行克隆其存储库
$ git clone https://github.com/Icybee/module-users-noncelogin.git users.noncelogin
文档
该软件包作为 Icybee CMS 文档 的一部分进行文档编制。可以使用 make doc 命令生成软件包及其依赖项的文档。使用 ApiGen 在 docs 目录中生成文档。之后可以使用 make clean 命令清理软件包目录。
测试
使用 make test 命令运行测试套件。自动安装 Composer 以及运行套件所需的全部依赖项。之后可以使用 make clean 命令清理软件包目录。
该软件包通过 Travis CI 进行持续测试。
许可证
本模块采用新BSD许可协议授权 - 详细信息请参阅LICENSE文件。