summaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/lib/auth
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/lib/auth')
-rw-r--r--deps/node/deps/npm/lib/auth/legacy.js79
-rw-r--r--deps/node/deps/npm/lib/auth/oauth.js7
-rw-r--r--deps/node/deps/npm/lib/auth/saml.js7
-rw-r--r--deps/node/deps/npm/lib/auth/sso.js73
4 files changed, 0 insertions, 166 deletions
diff --git a/deps/node/deps/npm/lib/auth/legacy.js b/deps/node/deps/npm/lib/auth/legacy.js
deleted file mode 100644
index 7ad678be..00000000
--- a/deps/node/deps/npm/lib/auth/legacy.js
+++ /dev/null
@@ -1,79 +0,0 @@
-'use strict'
-
-const read = require('../utils/read-user-info.js')
-const profile = require('libnpm/profile')
-const log = require('npmlog')
-const figgyPudding = require('figgy-pudding')
-const npmConfig = require('../config/figgy-config.js')
-const output = require('../utils/output.js')
-const openUrl = require('../utils/open-url')
-
-const openerPromise = (url) => new Promise((resolve, reject) => {
- openUrl(url, 'to complete your login please visit', (er) => er ? reject(er) : resolve())
-})
-
-const loginPrompter = (creds) => {
- const opts = { log: log }
- return read.username('Username:', creds.username, opts).then((u) => {
- creds.username = u
- return read.password('Password:', creds.password)
- }).then((p) => {
- creds.password = p
- return read.email('Email: (this IS public) ', creds.email, opts)
- }).then((e) => {
- creds.email = e
- return creds
- })
-}
-
-const LoginOpts = figgyPudding({
- 'always-auth': {},
- creds: {},
- log: {default: () => log},
- registry: {},
- scope: {}
-})
-
-module.exports.login = (creds = {}, registry, scope, cb) => {
- const opts = LoginOpts(npmConfig()).concat({scope, registry, creds})
- login(opts).then((newCreds) => cb(null, newCreds)).catch(cb)
-}
-
-function login (opts) {
- return profile.login(openerPromise, loginPrompter, opts)
- .catch((err) => {
- if (err.code === 'EOTP') throw err
- const u = opts.creds.username
- const p = opts.creds.password
- const e = opts.creds.email
- if (!(u && p && e)) throw err
- return profile.adduserCouch(u, e, p, opts)
- })
- .catch((err) => {
- if (err.code !== 'EOTP') throw err
- return read.otp(
- 'Enter one-time password from your authenticator app: '
- ).then(otp => {
- const u = opts.creds.username
- const p = opts.creds.password
- return profile.loginCouch(u, p, opts.concat({otp}))
- })
- }).then((result) => {
- const newCreds = {}
- if (result && result.token) {
- newCreds.token = result.token
- } else {
- newCreds.username = opts.creds.username
- newCreds.password = opts.creds.password
- newCreds.email = opts.creds.email
- newCreds.alwaysAuth = opts['always-auth']
- }
-
- const usermsg = opts.creds.username ? ' user ' + opts.creds.username : ''
- opts.log.info('login', 'Authorized' + usermsg)
- const scopeMessage = opts.scope ? ' to scope ' + opts.scope : ''
- const userout = opts.creds.username ? ' as ' + opts.creds.username : ''
- output('Logged in%s%s on %s.', userout, scopeMessage, opts.registry)
- return newCreds
- })
-}
diff --git a/deps/node/deps/npm/lib/auth/oauth.js b/deps/node/deps/npm/lib/auth/oauth.js
deleted file mode 100644
index 1cb3ffec..00000000
--- a/deps/node/deps/npm/lib/auth/oauth.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var ssoAuth = require('./sso')
-var npm = require('../npm')
-
-module.exports.login = function login () {
- npm.config.set('sso-type', 'oauth')
- ssoAuth.login.apply(this, arguments)
-}
diff --git a/deps/node/deps/npm/lib/auth/saml.js b/deps/node/deps/npm/lib/auth/saml.js
deleted file mode 100644
index ae92ea5b..00000000
--- a/deps/node/deps/npm/lib/auth/saml.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var ssoAuth = require('./sso')
-var npm = require('../npm')
-
-module.exports.login = function login () {
- npm.config.set('sso-type', 'saml')
- ssoAuth.login.apply(this, arguments)
-}
diff --git a/deps/node/deps/npm/lib/auth/sso.js b/deps/node/deps/npm/lib/auth/sso.js
deleted file mode 100644
index 099e764e..00000000
--- a/deps/node/deps/npm/lib/auth/sso.js
+++ /dev/null
@@ -1,73 +0,0 @@
-'use strict'
-
-const BB = require('bluebird')
-
-const figgyPudding = require('figgy-pudding')
-const log = require('npmlog')
-const npmConfig = require('../config/figgy-config.js')
-const npmFetch = require('npm-registry-fetch')
-const output = require('../utils/output.js')
-const openUrl = BB.promisify(require('../utils/open-url.js'))
-const otplease = require('../utils/otplease.js')
-const profile = require('libnpm/profile')
-
-const SsoOpts = figgyPudding({
- ssoType: 'sso-type',
- 'sso-type': {},
- ssoPollFrequency: 'sso-poll-frequency',
- 'sso-poll-frequency': {}
-})
-
-module.exports.login = function login (creds, registry, scope, cb) {
- const opts = SsoOpts(npmConfig()).concat({creds, registry, scope})
- const ssoType = opts.ssoType
- if (!ssoType) { return cb(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
- }
-
- otplease(opts,
- opts => profile.loginCouch(auth.username, auth.password, opts)
- ).then(({token, sso}) => {
- if (!token) { throw new Error('no SSO token returned') }
- if (!sso) { throw new Error('no SSO URL returned by services') }
- return openUrl(sso, 'to complete your login please visit').then(() => {
- return pollForSession(registry, token, opts)
- }).then(username => {
- log.info('adduser', 'Authorized user %s', username)
- var scopeMessage = scope ? ' to scope ' + scope : ''
- output('Logged in as %s%s on %s.', username, scopeMessage, registry)
- return {token}
- })
- }).nodeify(cb)
-}
-
-function pollForSession (registry, token, opts) {
- log.info('adduser', 'Polling for validated SSO session')
- return npmFetch.json(
- '/-/whoami', opts.concat({registry, forceAuth: {token}})
- ).then(
- ({username}) => username,
- err => {
- if (err.code === 'E401') {
- return sleep(opts['sso-poll-frequency']).then(() => {
- return pollForSession(registry, token, opts)
- })
- } else {
- throw err
- }
- }
- )
-}
-
-function sleep (time) {
- return new BB((resolve) => {
- setTimeout(resolve, time)
- })
-}