Handle OAuth errors properly

This commit is contained in:
Samuel Elliott
2022-08-13 00:38:45 +01:00
parent 4c5203e50e
commit 5f0fd26ef6

View File

@@ -26,11 +26,14 @@ export async function getNintendoAccountSessionToken(code: string, verifier: str
signal,
}).finally(cancel);
const token = await response.json() as NintendoAccountSessionToken | NintendoAccountError;
const token = await response.json() as NintendoAccountSessionToken | NintendoAccountAuthError | NintendoAccountError;
if ('errorCode' in token) {
throw new ErrorResponse('[na] ' + token.detail, response, token);
}
if ('error' in token) {
throw new ErrorResponse('[na] ' + token.error_description ?? token.error, response, token);
}
debug('Got Nintendo Account session token', token);
@@ -56,11 +59,14 @@ export async function getNintendoAccountToken(token: string, client_id: string)
signal,
}).finally(cancel);
const nintendoAccountToken = await response.json() as NintendoAccountToken | NintendoAccountError;
const nintendoAccountToken = await response.json() as NintendoAccountToken | NintendoAccountAuthError | NintendoAccountError;
if ('errorCode' in nintendoAccountToken) {
throw new ErrorResponse('[na] ' + nintendoAccountToken.detail, response, nintendoAccountToken);
}
if ('error' in nintendoAccountToken) {
throw new ErrorResponse('[na] ' + nintendoAccountToken.error_description ?? nintendoAccountToken.error, response, nintendoAccountToken);
}
debug('Got Nintendo Account token', nintendoAccountToken);
@@ -278,6 +284,11 @@ export interface Mii {
type: 'profile';
}
export interface NintendoAccountAuthError {
error: string;
error_description: string;
}
export interface NintendoAccountError {
errorCode: string;
detail: string;