public function authenticate(IRequest $request)
    {
        // resolve token type from request
        $tokenType = $this->tokenTypeResolver->resolve($request);

        $accessToken = $this->accessTokenStorage->get($tokenType->getAccessToken());

        if (!$accessToken) {
            throw new NotAuthenticatedException;
        }

        return new Session($accessToken);
    }