ResetPasswordTokenManager   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 20
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A isValid() 0 8 1
A generate() 0 6 1
1
<?php
2
3
namespace App\Security;
4
5
class ResetPasswordTokenManager
6
{
7
    const TTL = 3600;
8
9
    public function generate(): string
10
    {
11
        $key = sha1(random_bytes(10));
12
        $date = new \DateTime();
13
14
        return $key.'.'.$date->getTimestamp();
15
    }
16
17
    public function isValid(string $token): bool
18
    {
19
        $tokenDate = explode('.', $token);
20
        $date = new \DateTime();
21
22
        $time = $date->getTimestamp() - (int) $tokenDate[1];
23
24
        return $time < self::TTL;
25
    }
26
}
27