kettasoft/pass-audit

PassAudit 是一个强大且高效的 Laravel 扩展包,旨在增强应用程序中用户密码的安全性。此扩展包提供了一种全面的解决方案,以防止用户重复使用以前的密码,从而降低未经授权访问的风险。

v1.0.0 2024-07-17 19:29 UTC

This package is auto-updated.

Last update: 2024-09-18 07:40:56 UTC


README

Latest Version Build Status Total Downloads

PassAudit 是一个强大且高效的 Laravel 扩展包,旨在增强应用程序中用户密码的安全性。此扩展包提供了一种全面的解决方案,以防止用户重复使用以前的密码,从而降低未经授权访问的风险。

安装

您可以通过 Composer 安装此扩展包

composer require kettasoft/pass-audit

配置

  1. 注册服务提供者
  • 将服务提供者添加到 config/app.php 文件中的 providers 数组中
'providers' => [
    Kettasoft\PassAudit\PassAuditServiceProvider::class,
    ...
],

发布配置

  • 发布扩展包配置文件
php artisan vendor:publish --provider="Kettasoft\PassAudit\PassAuditServiceProvider" --tag="config"
  • 这将在您的配置目录中创建一个 passaudit.php 文件,您可以在其中自定义设置。

发布迁移

  • 发布迁移文件
php artisan vendor:publish --provider="Kettasoft\PassAudit\PassAuditServiceProvider" --tag="migrations"

然后,运行迁移

php artisan migrate

使用

在用户模型中使用特性

PassAudit 特性添加到您的 User 模型中

namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Kettasoft\PassAudit\PassAudit;

class User extends Authenticatable
{
    use PassAudit;

    //...
}

实现接口到用户模型

  • 确保您的 User 模型实现了 HasPassAuditChecker
namespace App\Models;

use Kettasoft\PassAudit\Contracts\HasPassAuditChecker;

class User extends Authenticatable implements HasPassAuditChecker
{
    //
}

在请求中使用规则验证

  • 您可以在请求验证中使用 PassAuditRule 以防止用户重复使用以前的密码
namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Kettasoft\PassAudit\Rules\PassAuditRule;

class UpdatePasswordRequest extends FormRequest
{
    public function rules()
    {
        return [
            'password' => ['required', 'string', 'min:8', new PassAuditRule($this->user())],
        ];
    }
}

自定义

您可以通过修改 passaudit.php 配置文件来自定义扩展包的行为。选项包括

  • 要跟踪的以前密码的数量
  • 要使用的散列算法

贡献

感谢您考虑为 PassAudit 贡献!在提交拉取请求之前,请阅读贡献指南。

许可证

PassAudit 是开源软件,采用 MIT 许可证。