@jbrowse/plugin-authentication
Version:
JBrowse 2 Authentication
27 lines (26 loc) • 801 B
JavaScript
export function fixup(buf) {
return buf.replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '');
}
export async function generateChallenge(val) {
const sha256 = await import('crypto-js/sha256').then(f => f.default);
const Base64 = await import('crypto-js/enc-base64');
return fixup(Base64.stringify(sha256(val)));
}
export function processError(text, invalidErrorCb) {
try {
const obj = JSON.parse(text);
if (obj.error === 'invalid_grant') {
invalidErrorCb();
}
return obj?.error_description ?? text;
}
catch (e) {
}
return text;
}
export function processTokenResponse(data, storeRefreshTokenCb) {
if (data.refresh_token) {
storeRefreshTokenCb(data.refresh_token);
}
return data.access_token;
}