Align auth calls with the v1 gateway: the OAuth authorize URL is a GET with redirect_uri; sign-out revokes the current access token; password changes use PATCH /auth/v1/user/password; sign-up sends nickname and avatarUrl as name and picture
linkIdentity returns the authorization URL in data.url
Parse a JSON string error body as JSON
Read v1 profile and identity payloads (user_id, picture, identity list in data). An empty identity response is an empty list
Add debug to CloudBase.init. When true, the SDK prints the request body, response headers, and response body
Fix HTTP interceptor attaching expired AccessToken to unauthenticated auth endpoints (refresh /auth/v1/token and anonymous sign-in /auth/v1/signin/anonymously), which caused the gateway to reject token refresh and re-login
Skip Authorization on a maintained list of public auth APIs (sign-in/sign-up, OTP, OAuth token exchange, captcha, revoke, etc.); protected endpoints such as /auth/v1/user/me still send the session token
Fix UserProfile.toUser() incorrectly falling back to username (phone number) when email is null, which caused reauthentication to send an invalid email format to the server
Fix reauthenticate() to properly distinguish between empty string and valid email, ensuring phone-only users use phone number for verification instead of invalid email