summaryrefslogtreecommitdiff
path: root/deps/npm/lib/auth
diff options
context:
space:
mode:
authornpm CLI robot <npm-cli+bot@github.com>2022-12-06 22:18:33 -0500
committerGitHub <noreply@github.com>2022-12-07 03:18:33 +0000
commit3bef54918b9a8fae42d24520e59214239b3a5386 (patch)
treef90509490c6880220938671346b2c2f644fd3d68 /deps/npm/lib/auth
parente70496f25508af8faa98717b9d90c9bcad8d767d (diff)
downloadnode-new-3bef54918b9a8fae42d24520e59214239b3a5386.tar.gz
deps: upgrade npm to 9.1.3
PR-URL: https://github.com/nodejs/node/pull/45693 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruy Adorno <ruyadorno@google.com>
Diffstat (limited to 'deps/npm/lib/auth')
-rw-r--r--deps/npm/lib/auth/legacy.js100
-rw-r--r--deps/npm/lib/auth/oauth.js8
-rw-r--r--deps/npm/lib/auth/saml.js8
-rw-r--r--deps/npm/lib/auth/sso.js81
4 files changed, 0 insertions, 197 deletions
diff --git a/deps/npm/lib/auth/legacy.js b/deps/npm/lib/auth/legacy.js
deleted file mode 100644
index 9aed12f392..0000000000
--- a/deps/npm/lib/auth/legacy.js
+++ /dev/null
@@ -1,100 +0,0 @@
-const profile = require('npm-profile')
-const log = require('../utils/log-shim')
-const openUrlPrompt = require('../utils/open-url-prompt.js')
-const read = require('../utils/read-user-info.js')
-
-const loginPrompter = async (creds) => {
- creds.username = await read.username('Username:', creds.username)
- creds.password = await read.password('Password:', creds.password)
- creds.email = await read.email('Email: (this IS public) ', creds.email)
-
- return creds
-}
-
-const login = async (npm, opts) => {
- let res
-
- const requestOTP = async () => {
- const otp = await read.otp(
- 'Enter one-time password: '
- )
-
- return profile.loginCouch(
- opts.creds.username,
- opts.creds.password,
- { ...opts, otp }
- )
- }
-
- const addNewUser = async () => {
- let newUser
-
- try {
- newUser = await profile.adduserCouch(
- opts.creds.username,
- opts.creds.email,
- opts.creds.password,
- opts
- )
- } catch (err) {
- if (err.code === 'EOTP') {
- newUser = await requestOTP()
- } else {
- throw err
- }
- }
-
- return newUser
- }
-
- const openerPromise = (url, emitter) =>
- openUrlPrompt(
- npm,
- url,
- 'Authenticate your account at',
- 'Press ENTER to open in the browser...',
- emitter
- )
-
- try {
- res = await profile.login(openerPromise, loginPrompter, opts)
- } catch (err) {
- const needsMoreInfo = !(opts &&
- opts.creds &&
- opts.creds.username &&
- opts.creds.password &&
- opts.creds.email)
- if (err.code === 'EOTP') {
- res = await requestOTP()
- } else if (needsMoreInfo) {
- throw err
- } else {
- // TODO: maybe this needs to check for err.code === 'E400' instead?
- res = await addNewUser()
- }
- }
-
- const newCreds = {}
- if (res && res.token) {
- newCreds.token = res.token
- } else {
- newCreds.username = opts.creds.username
- newCreds.password = opts.creds.password
- newCreds.email = opts.creds.email
- newCreds.alwaysAuth = opts.creds.alwaysAuth
- }
-
- const usermsg = opts.creds.username ? ` user ${opts.creds.username}` : ''
- const scopeMessage = opts.scope ? ` to scope ${opts.scope}` : ''
- const userout = opts.creds.username ? ` as ${opts.creds.username}` : ''
- const message = `Logged in${userout}${scopeMessage} on ${opts.registry}.`
-
- log.info('login', `Authorized${usermsg}`)
-
- return {
- message,
- newCreds,
- }
-}
-
-module.exports = login
diff --git a/deps/npm/lib/auth/oauth.js b/deps/npm/lib/auth/oauth.js
deleted file mode 100644
index 99c2ca0ca0..0000000000
--- a/deps/npm/lib/auth/oauth.js
+++ /dev/null
@@ -1,8 +0,0 @@
-const sso = require('./sso.js')
-
-const login = (npm, opts) => {
- npm.config.set('sso-type', 'oauth')
- return sso(npm, opts)
-}
-
-module.exports = login
diff --git a/deps/npm/lib/auth/saml.js b/deps/npm/lib/auth/saml.js
deleted file mode 100644
index 3dd31ca013..0000000000
--- a/deps/npm/lib/auth/saml.js
+++ /dev/null
@@ -1,8 +0,0 @@
-const sso = require('./sso.js')
-
-const login = (npm, opts) => {
- npm.config.set('sso-type', 'saml')
- return sso(npm, opts)
-}
-
-module.exports = login
diff --git a/deps/npm/lib/auth/sso.js b/deps/npm/lib/auth/sso.js
deleted file mode 100644
index 621ead5d21..0000000000
--- a/deps/npm/lib/auth/sso.js
+++ /dev/null
@@ -1,81 +0,0 @@
-// XXX: To date, npm Enterprise Legacy is the only system that ever
-// implemented support for this type of login. A better way to do
-// SSO is to use the WebLogin type of login supported by the npm-login
-// module. This more forward-looking login style is, ironically,
-// supported by the '--auth-type=legacy' type of login.
-// When and if npm Enterprise Legacy is no longer supported by the npm
-// CLI, we can remove this, and fold the lib/auth/legacy.js back into
-// lib/adduser.js
-
-const profile = require('npm-profile')
-const npmFetch = require('npm-registry-fetch')
-const log = require('../utils/log-shim')
-const openUrl = require('../utils/open-url.js')
-const otplease = require('../utils/otplease.js')
-
-const pollForSession = ({ registry, token, opts }) => {
- log.info('adduser', 'Polling for validated SSO session')
- return npmFetch.json(
- '/-/whoami', { ...opts, registry, forceAuth: { token } }
- ).then(
- ({ username }) => username,
- err => {
- if (err.code === 'E401') {
- return sleep(opts.ssoPollFrequency).then(() => {
- return pollForSession({ registry, token, opts })
- })
- } else {
- throw err
- }
- }
- )
-}
-
-function sleep (time) {
- return new Promise((resolve) => setTimeout(resolve, time))
-}
-
-const login = async (npm, { creds, registry, scope }) => {
- const opts = { ...npm.flatOptions, creds, registry, scope }
- const { ssoType } = opts
-
- if (!ssoType) {
- throw new Error('Missing option: sso-type')
- }
-
- // We're reusing the legacy login endpoint, so we need some dummy
- // stuff here to pass validation. They're never used.
- const auth = {
- username: 'npm_' + ssoType + '_auth_dummy_user',
- password: 'placeholder',
- email: 'support@npmjs.com',
- authType: ssoType,
- }
-
- const { token, sso } = await otplease(npm, opts,
- opts => profile.loginCouch(auth.username, auth.password, opts)
- )
-
- if (!token) {
- throw new Error('no SSO token returned')
- }
- if (!sso) {
- throw new Error('no SSO URL returned by services')
- }
-
- await openUrl(npm, sso, 'to complete your login please visit')
-
- const username = await pollForSession({ registry, token, opts })
-
- log.info('adduser', `Authorized user ${username}`)
-
- const scopeMessage = scope ? ' to scope ' + scope : ''
- const message = `Logged in as ${username}${scopeMessage} on ${registry}.`
-
- return {
- message,
- newCreds: { token },
- }
-}
-
-module.exports = login