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
|