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;
}