public function login($subject)
    {
        /** @var HasLoginToken */
        $caller = $this->identifier->identify($subject);

        if ($this->authenticator->authenticate($subject, $caller)) {
            $this->driver->setLoginToken($caller->getLoginToken());
            $this->currentCaller = $caller;

            return true;
        }

        return false;
    }