summaryrefslogtreecommitdiff
path: root/deps/npm/lib/utils/web-auth.js
blob: ce551687098fc8e986b9efa77dadd1786d2ebe8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const EventEmitter = require('events')
const { webAuthCheckLogin } = require('npm-profile')

async function webAuth (opener, initialUrl, doneUrl, opts) {
  const doneEmitter = new EventEmitter()

  const openPromise = opener(initialUrl, doneEmitter)
  const webAuthCheckPromise = webAuthCheckLogin(doneUrl, { ...opts, cache: false })
    .then(authResult => {
      // cancel open prompt if it's present
      doneEmitter.emit('abort')

      return authResult.token
    })

  await openPromise
  return await webAuthCheckPromise
}

module.exports = webAuth