Add token expiration, tweak error handling for npm

pull/594/head
Michael Shamoon 1 year ago
parent 94678be85e
commit 039d3df7d8

@ -20,12 +20,18 @@ async function login(loginUrl, username, password) {
});
const status = authResponse[0];
const data = JSON.parse(Buffer.from(authResponse[2]).toString());
if (status === 200) {
cache.put(tokenCacheKey, data.token);
let data = authResponse[2];
try {
data = JSON.parse(Buffer.from(authResponse[2]).toString());
if (status === 200) {
const expiration = new Date(data.expires) - Date.now();
cache.put(tokenCacheKey, data.token, expiration - (5 * 60 * 1000)); // expiration -5 minutes
}
} catch (e) {
logger.error(`Error ${status} logging into npm`, authResponse[2]);
}
return [status, data.token ?? data];
}
@ -51,8 +57,8 @@ export default async function npmProxyHandler(req, res) {
if (!token) {
[status, token] = await login(loginUrl, widget.username, widget.password);
if (status !== 200) {
logger.debug(`HTTTP ${status} logging into npm api: ${data}`);
return res.status(status).send(data);
logger.debug(`HTTTP ${status} logging into npm api: ${token}`);
return res.status(status).send(token);
}
}

Loading…
Cancel
Save