BookStack\Services\EmailConfirmationService::getEmailConfirmationFromToken PHP Method

getEmailConfirmationFromToken() public method

Gets an email confirmation by looking up the token, Ensures the token has not expired.
public getEmailConfirmationFromToken ( string $token ) : EmailConfirmation
$token string
return EmailConfirmation
    public function getEmailConfirmationFromToken($token)
    {
        $emailConfirmation = $this->db->table('email_confirmations')->where('token', '=', $token)->first();
        // If not found show error
        if ($emailConfirmation === null) {
            throw new UserRegistrationException('This confirmation token is not valid or has already been used, Please try registering again.', '/register');
        }
        // If more than a day old
        if (Carbon::now()->subDay()->gt(new Carbon($emailConfirmation->created_at))) {
            $user = $this->users->getById($emailConfirmation->user_id);
            $this->sendConfirmation($user);
            throw new UserRegistrationException('The confirmation token has expired, A new confirmation email has been sent.', '/register/confirm');
        }
        $emailConfirmation->user = $this->users->getById($emailConfirmation->user_id);
        return $emailConfirmation;
    }