login_window.webContents.on('will-navigate', (event: Event, url: string) => { event.preventDefault(); log.debug('Login window: will-navigate: ', url); const match = url.match(/\?oauth_token=([^&]*)&oauth_verifier=([^&]*)/); if (!match) { return; } oauth.getOAuthAccessToken(request_token, request_token_secret, match[2], (err, token, token_secret) => { log.debug('access token:', token); if (err) { setTimeout(() => login_window.close(), 0); reject(err); return; } const access = { token, token_secret, }; resolve(access); writeFile(config_path, JSON.stringify(access), e => { if (e) { log.warn('Failed to store tokens to a token.json', e); } login_window.close(); }); }); });
return new Promise((resolve, reject) => { const oauth = new OAuth( 'https://twitter.com/oauth/request_token', 'https://twitter.com/oauth/access_token', consumer_key, consumer_secret, '1.0A', 'https://example.com', // Note: Will not be used 'HMAC-SHA1' ); oauth.getOAuthRequestToken((err, token, token_secret) => { log.debug('Request token:', token); if (err) { reject(err); return; } resolve(authenticate_with_request_tokens(oauth, token, token_secret)); }); });