creode / laravel-account-approval
一个 Laravel 扩展包,为用户提供在注册后要求账户审核的基本功能。
Requires
- php: ^8.1
- illuminate/contracts: ^10.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
This package is auto-updated.
Last update: 2024-08-29 11:41:01 UTC
README
一个 Laravel 扩展包,为用户提供在注册后要求账户审核的基本功能。
安装
您可以通过 composer 安装此包
composer require creode/laravel-account-approval
迁移
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="account-approval-migrations"
php artisan migrate
配置
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="account-approval-config"
以下选项在配置文件中可用
users_table
- 数据库中用户表的名称。默认为users
。account_not_verified_message
- 当账户未验证时,显示在会话中的消息。默认为您的账户尚未验证。请检查您的电子邮件以获取验证链接。
。
中间件
为了防止用户在未经批准的情况下访问网站,应在 app/Http/Kernel.php
中的 web
中间件组中添加 AccountActivated
中间件。
protected $middlewareGroups = [ 'web' => [ // ... \Creode\LaravelAccountApproval\Http\Middleware\AccountActivated::class, ], // ... ];
此中间件将在每个请求上运行,检测用户是否已登录并且未经批准,然后将其重定向到 login
路由。此路由可以在 config/account-approval.php
文件中配置。
扩展中间件
如果您需要为当前网站执行一些自定义功能,可以扩展 AccountActivated
中间件并重写 accountNotActivated
方法。这将允许您执行自定义功能。还可以重写 unverifiedAccountRedirect
函数,以便您可以将用户重定向到自定义路由并设置自己的消息/功能。
namespace App\Http\Middleware; use Closure; use Creode\LaravelAccountApproval\Http\Middleware\AccountActivated as BaseAccountActivated; class AccountActivated extends BaseAccountActivated { /** * Handle a failed activation. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ protected function accountNotActivated(Request $request, Closure $next) { // Your custom functionality here } /** * Redirect which will happen if the user is not activated. * * Return null to continue with the request. * * @param Request $request * @param Closure $next * * @return Response|null */ protected function unverifiedAccountRedirect(Request $request, Closure $next): ?Response { // Your custom functionality here } }
用法
在安装包后,运行迁移命令将向用户表添加一个 activated
列。默认情况下,所有用户的此列都为 false
。假设这是快速启动网站的最佳配置。
或者,运行此模块中提供的生成器将所有现有用户设置为已批准。可以使用以下命令运行
php artisan db:seed --class="Creode\LaravelAccountApproval\Database\Seeders\AccountApprovalSeeder"
这将解决默认认证模型并将所有用户的激活标志设置为 true
。
测试
composer test
更新日志
请参阅 更新日志 以获取有关最近更改的更多信息。
贡献
请参阅 贡献指南 以获取详细信息。
安全漏洞
请查看我们的安全策略,了解如何报告安全漏洞:我们的安全策略。
致谢
许可协议
MIT 许可协议(MIT)。请参阅 许可文件 以获取更多信息。