Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
async function login(opts) {
opts = loginOpts(opts);
const { username, token } = await profile.loginWeb(
async url => {
console.log(`Here's your login url:\n ${url}\nA browser window should open momentarily (If it doesn't, open the above link manually.)`);
return opener(url);
},
opts
);
// load _just_ the config file, not the config file + env + cli args.
const current = await load();
current.registries = current.registries || {};
current.registries[opts.registry] = current.registries[opts.registry] || {};
current.registries[opts.registry].token = token;
current.registries[opts.registry].username = username;
await save(current);
async function validateToken(otp, npm) {
if (!validator.isNumeric(otp)) {
return false;
}
try {
const {token} = await profile.loginCouch(npm.username, npm.password, {registry: npm.registry, otp});
npm.token = token;
return true;
} catch (_) {
// Invalid 2FA token
}
return 'Invalid authentication code';
}
async function getNpmToken({npm}) {
let token;
try {
const result = await profile.loginCouch(npm.username, npm.password, {registry: npm.registry});
token = result.token;
} catch (error) {
if (error.code === 'EOTP') {
await askForOTP(npm);
token = npm.token;
}
}
if (!token) throw new Error(`Could not login to npm.`);
npm.token = token;
log.info(`Successfully created npm token. ${npm.token}`);
}
'use strict'
module.exports = require('npm-profile').adduser
'use strict'
module.exports = require('npm-profile').adduser