langleyfoxall/laravel-nist-password-rules

🔒 提供遵循NIST特别出版物800-63B中发现的密码相关建议的Laravel验证规则。

v8.0.0 2024-07-03 11:24 UTC

README

Build Status Coverage Status StyleCI Packagist

此包提供遵循NIST特别出版物800-63B第5节中发现的密码相关建议的Laravel验证规则。

Laravel NIST 密码规则实现了以下建议。

它还提供了方法来返回各种场景的验证规则数组,例如注册、登录和密码更改。这些数组可以直接传递给Laravel验证器。

安装

您可以使用Composer轻松安装Laravel NIST Password Rules。只需从您项目的根目录运行以下命令。

composer require langleyfoxall/laravel-nist-password-rules

如果您以前从未使用过Composer依赖关系管理器,请访问Composer网站获取有关如何开始的信息。

可选地,您可以使用以下Artisan命令发布包的翻译文件。

php artisan vendor:publish --provider="LangleyFoxall\LaravelNISTPasswordRules\ServiceProvider"

用法

要在您的项目中使用Laravel NIST Password Rules,首先使用use PasswordRules类,然后调用适当的静态方法以返回适当的验证规则数组。有可用于以下场景的方法。

  • 注册
  • 更改密码,带旧密码
  • 更改密码,不带旧密码
  • 可选更改密码,带旧密码
  • 可选更改密码,不带旧密码
  • 登录

请参阅下面的示例用法语法。

use LangleyFoxall\LaravelNISTPasswordRules\PasswordRules;

// Register
$this->validate($request, [
    'email' => 'required',
    'password' => PasswordRules::register($request->email),
]);

// Register, without requiring password confirmation
$this->validate($request, [
    'email' => 'required',
    'password' => PasswordRules::register($request->email, false),
]);

// Change password, with old password
$this->validate($request, [
    'old_password' => 'required',
    'password' => PasswordRules::changePassword($request->email, 'old_password'),
]);

// Change password, without old password
$this->validate($request, [
    'password' => PasswordRules::changePassword($request->email),
]);

// Optionally change password, with old password
$this->validate($request, [
    'old_password' => 'required',
    'password' => PasswordRules::optionallyChangePassword($request->email, 'old_password'),
]);

// Optionally change password, without old password
$this->validate($request, [
    'password' => PasswordRules::optionallyChangePassword($request->email),
]);

// Login
$this->validate($request, [
    'email' => 'required',
    'password' => PasswordRules::login(),
]);

optionallyChangePassword方法提供了适用于密码可以可选更改的表单的验证规则。