DatabaseTokenRepository.php 1.23 KB
Newer Older
Jens Segers's avatar
Jens Segers committed
1 2 3
<?php

namespace Jenssegers\Mongodb\Auth;
duxet's avatar
duxet committed
4

David Schreck's avatar
David Schreck committed
5 6
use DateTime;
use DateTimeZone;
7 8
use Illuminate\Auth\Passwords\DatabaseTokenRepository as BaseDatabaseTokenRepository;
use MongoDB\BSON\UTCDateTime;
duxet's avatar
duxet committed
9

10
class DatabaseTokenRepository extends BaseDatabaseTokenRepository
Jens Segers's avatar
Jens Segers committed
11
{
Jens Segers's avatar
Jens Segers committed
12
    /**
13
     * @inheritdoc
Jens Segers's avatar
Jens Segers committed
14 15 16
     */
    protected function getPayload($email, $token)
    {
Le The Hoang's avatar
Le The Hoang committed
17
        return ['email' => $email, 'token' => $this->hasher->make($token), 'created_at' => new UTCDateTime(time() * 1000)];
Jens Segers's avatar
Jens Segers committed
18 19 20
    }

    /**
21
     * @inheritdoc
Jens Segers's avatar
Jens Segers committed
22
     */
Le The Hoang's avatar
Le The Hoang committed
23
    protected function tokenExpired($createdAt)
Jens Segers's avatar
Jens Segers committed
24
    {
25
        // Convert UTCDateTime to a date string.
Le The Hoang's avatar
Le The Hoang committed
26 27
        if ($createdAt instanceof UTCDateTime) {
            $date = $createdAt->toDateTime();
28
            $date->setTimezone(new DateTimeZone(date_default_timezone_get()));
Le The Hoang's avatar
Le The Hoang committed
29 30 31
            $createdAt = $date->format('Y-m-d H:i:s');
        } elseif (is_array($createdAt) and isset($createdAt['date'])) {
            $date = new DateTime($createdAt['date'], new DateTimeZone(isset($createdAt['timezone']) ? $createdAt['timezone'] : 'UTC'));
Jens Segers's avatar
Jens Segers committed
32
            $date->setTimezone(new DateTimeZone(date_default_timezone_get()));
Le The Hoang's avatar
Le The Hoang committed
33
            $createdAt = $date->format('Y-m-d H:i:s');
Jens Segers's avatar
Jens Segers committed
34 35
        }

Le The Hoang's avatar
Le The Hoang committed
36
        return parent::tokenExpired($createdAt);
Jens Segers's avatar
Jens Segers committed
37
    }
duxet's avatar
duxet committed
38
}