Parse
This commit is contained in:
parent
11453b327f
commit
9bae31d748
|
@ -77,12 +77,23 @@ export const codeFromURIString = (id: string, uriString: string): Code => {
|
||||||
issuer: _getIssuer(uriPath, uriParams),
|
issuer: _getIssuer(uriPath, uriParams),
|
||||||
digits: parseDigits(uriParams),
|
digits: parseDigits(uriParams),
|
||||||
period: parsePeriod(uriParams),
|
period: parsePeriod(uriParams),
|
||||||
secret: getSanitizedSecret(uriParams),
|
secret: parseSecret(uriParams),
|
||||||
algorithm: parseAlgorithm(uriParams),
|
algorithm: parseAlgorithm(uriParams),
|
||||||
uriString,
|
uriString,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const _getType = (uriPath: string): Code["type"] => {
|
||||||
|
const oauthType = uriPath.split("/")[0].substring(0);
|
||||||
|
if (oauthType.toLowerCase() === "totp") {
|
||||||
|
return "totp";
|
||||||
|
} else if (oauthType.toLowerCase() === "hotp") {
|
||||||
|
return "hotp";
|
||||||
|
}
|
||||||
|
throw new Error(`Unsupported format with host ${oauthType}`);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
const _getAccount = (uriPath: string): string => {
|
const _getAccount = (uriPath: string): string => {
|
||||||
try {
|
try {
|
||||||
const path = decodeURIComponent(uriPath);
|
const path = decodeURIComponent(uriPath);
|
||||||
|
@ -138,19 +149,8 @@ const parseAlgorithm = (uriParams): Code["algorithm"] => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const _getType = (uriPath: string): Code["type"] => {
|
const parseSecret = (uriParams): string =>
|
||||||
const oauthType = uriPath.split("/")[0].substring(0);
|
uriParams["secret"].replaceAll(" ", "").toUpperCase();
|
||||||
if (oauthType.toLowerCase() === "totp") {
|
|
||||||
return "totp";
|
|
||||||
} else if (oauthType.toLowerCase() === "hotp") {
|
|
||||||
return "hotp";
|
|
||||||
}
|
|
||||||
throw new Error(`Unsupported format with host ${oauthType}`);
|
|
||||||
};
|
|
||||||
|
|
||||||
const getSanitizedSecret = (uriParams): string => {
|
|
||||||
return uriParams["secret"].replace(/ /g, "").toUpperCase();
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate a pair of OTPs (one time passwords) from the given {@link code}.
|
* Generate a pair of OTPs (one time passwords) from the given {@link code}.
|
||||||
|
|
Loading…
Reference in a new issue