@pm2/js-api
Version:
PM2.io API Client for Javascript
34 lines (29 loc) • 1.05 kB
JavaScript
const AuthStrategy = require('./strategy')
module.exports = class StandaloneFlow extends AuthStrategy {
retrieveTokens (km, cb) {
if (this._opts.refresh_token && this._opts.access_token) {
// if both access and refresh tokens are provided, we are good
return cb(null, {
access_token: this._opts.access_token,
refresh_token: this._opts.refresh_token
})
} else if (this._opts.refresh_token && this._opts.client_id) {
// we can also make a request to get an access token
km.auth.retrieveToken({
client_id: this._opts.client_id,
refresh_token: this._opts.refresh_token
}).then((res) => {
let tokens = res.data
return cb(null, tokens)
}).catch(cb)
} else {
// otherwise the flow isn't used correctly
throw new Error(`If you want to use the standalone flow you need to provide either
a refresh and access token OR a refresh token and a client id`)
}
}
deleteTokens (km) {
return km.auth.revoke
}
}