PasswordStrength

Дата обновления перевода 2024-07-25

PasswordStrength

Валидирует, что заданный пароль достиг минимальной надёжности, требуемой ограничением. Надёжность пароля не оценивается с помощью набора заранее определённых правил (включение числа, использование строчных и заглавных букв и т.д.), а путём измерения энтропии пароля на основе его длины и количества использованных уникальных символов.

??????????? ? ???????? ??? ??????
????? PasswordStrength
????????? PasswordStrengthValidator

Базовое применение

Следующее ограничение гарантирует, что свойство rawPassword класса User достигнет минимальной надёжности, требуемой ограничением. По умолчанию минимально требуемая оценка равна 2.

1
2
3
4
5
6
7
8
9
10
// src/Entity/User.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class User
{
    #[Assert\PasswordStrength]
    protected $rawPassword;
}

Доступные опции

minScore

тип: integer по умолчанию: PasswordStrength::STRENGTH_MEDIUM (2)

Минимальная требуемая надёжность пароля. Доступны такие константы:

  • PasswordStrength::STRENGTH_WEAK = 1
  • PasswordStrength::STRENGTH_MEDIUM = 2
  • PasswordStrength::STRENGTH_STRONG = 3
  • PasswordStrength::STRENGTH_VERY_STRONG = 4

PasswordStrength::STRENGTH_VERY_WEAK доступна, но используется только внутренне или же пользовательским оценщиком надёжности пароля.

1
2
3
4
5
6
7
8
9
10
11
12
// src/Entity/User.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class User
{
    #[Assert\PasswordStrength([
        'minScore' => PasswordStrength::STRENGTH_VERY_STRONG, // Требуется очень надёжный пароль
    ])]
    protected $rawPassword;
}

message

тип: string по умолчанию: Надёжность пароля слишком низкая. Пожалуйста, используйте более надёжный пароль.

Сообщение по умолчанию, отображаемое, если пароль не достигает минимальной требуемой оценки.

1
2
3
4
5
6
7
8
9
10
11
12
// src/Entity/User.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class User
{
    #[Assert\PasswordStrength([
        'message' => 'Le mot de passe est trop faible. Veuillez utiliser un mot de passe plus fort.'
    ])]
    protected $rawPassword;
}