electron-oauth-helper
Version:
Easy to use helper library for OAuth1 and OAuth2.
56 lines • 2.28 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var debug_1 = __importDefault(require("debug"));
var helper_1 = require("./helper");
var utils_1 = require("../utils");
var debug = debug_1.default("eoh:oauth1");
var OAuth1Provider = /** @class */ (function () {
function OAuth1Provider(config) {
this.finished = false;
this.config = utils_1.pick(config, [
"oauth_consumer_key",
"oauth_consumer_secret",
"oauth_callback",
]);
this.urls = utils_1.pick(config, [
"request_token_url",
"authenticate_url",
"access_token_url",
]);
}
OAuth1Provider.prototype.perform = function (window) {
var _this = this;
this.finished = false;
return new Promise(function (resolve, reject) {
// Step 1: Obtaining a request token
return helper_1.requestOAuthToken(_this.urls.request_token_url, _this.config)
.then(function (oauth_token) {
debug("Step 1 response", oauth_token);
window.once("close", function () {
if (_this.finished === false) {
reject(new Error("window closed"));
}
});
// Step 2: Redirecting the user
return helper_1.redirectAuthPage(_this.urls.authenticate_url, _this.config, oauth_token, window);
})
.then(function (resp) {
debug("Step 2 response", resp);
// Step 3: Converting the request token to an access token
return helper_1.requestAccessToken(_this.urls.access_token_url, _this.config, resp.oauth_token, resp.oauth_verifier);
})
.then(function (resp) {
debug("Step 3 response", resp);
_this.finished = true;
resolve(resp);
})
.catch(function (error) { return reject(error); });
});
};
return OAuth1Provider;
}());
exports.default = OAuth1Provider;
//# sourceMappingURL=index.js.map