fix: surface AuthError description in spaces auth middleware
verifier.verify returns a structured {error, description} AuthError on
failure, but the middleware stringified it as `String(result.error)`,
producing "[object Object]" in the 401 body. Real rejection reasons
("jwt lexicon method does not match", "invalid signature",
"could not resolve did document", etc.) were invisible to callers.
Surface the description (or the error name as fallback) so 401 bodies
carry a human-readable reason.