creode/laravel-account-approval

一个 Laravel 扩展包,为用户提供在注册后要求账户审核的基本功能。

1.1.0 2024-01-12 16:00 UTC

This package is auto-updated.

Last update: 2024-08-29 11:41:01 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

一个 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)。请参阅 许可文件 以获取更多信息。