summaryrefslogtreecommitdiff
path: root/classes/authenticator/PasswordTrait.php
diff options
context:
space:
mode:
authorGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-12 07:01:30 +0200
committerGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-12 07:01:30 +0200
commit47cbb529f5723b246125ae083a193e11481b89ef (patch)
tree31ab20b2fbf12bee1cd994c3d6fb822fa52622e3 /classes/authenticator/PasswordTrait.php
downloadclassroom-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.php40
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;
+ }
+}