diff options
| author | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-03-12 07:01:30 +0200 |
|---|---|---|
| committer | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-03-12 07:01:30 +0200 |
| commit | 47cbb529f5723b246125ae083a193e11481b89ef (patch) | |
| tree | 31ab20b2fbf12bee1cd994c3d6fb822fa52622e3 /classes/authenticator/PasswordTrait.php | |
| download | classroom-47cbb529f5723b246125ae083a193e11481b89ef.tar.gz classroom-47cbb529f5723b246125ae083a193e11481b89ef.tar.bz2 classroom-47cbb529f5723b246125ae083a193e11481b89ef.zip | |
initializing classroom structure using anom framework
Diffstat (limited to 'classes/authenticator/PasswordTrait.php')
| -rw-r--r-- | classes/authenticator/PasswordTrait.php | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/classes/authenticator/PasswordTrait.php b/classes/authenticator/PasswordTrait.php new file mode 100644 index 0000000..22976d8 --- /dev/null +++ b/classes/authenticator/PasswordTrait.php @@ -0,0 +1,40 @@ +<?php + + +// namespace DevCoder\Authentication\Core; +// +// use DevCoder\Authentication\UserInterface; + +/** + * Trait PasswordTrait + * @package DevCoder\Authentication\Core + */ +trait PasswordTrait +{ + private $cost = 10; + + public function cryptPassword(string $plainPassword): string + { + return password_hash( + $plainPassword, + PASSWORD_BCRYPT, + ['cost' => $this->cost] + ); + } + + public function isPasswordValid(UserInterface $user, string $plainPassword): bool + { + return password_verify( + $plainPassword, + $user->getPassword() + ); + } + + public function setCost(int $cost): void + { + if ($cost < 4 || $cost > 12) { + throw new \InvalidArgumentException('Cost must be in the range of 4-31.'); + } + $this->cost = $cost; + } +} |
