public function resolve(IRequest $request)
    {
        foreach ($this->tokenTypes as $tokenType) {
            if ($tokenType->match($request)) {
                return $tokenType;
            }
        }

        throw new UnsupportedTokenTypeException;
    }