Class: Teems::Services::TokenExtractor

Inherits:
Object
  • Object
show all
Includes:
HeadlessExtract, SafariAutomation, SafariOAuth, TokenExchangeScripts, TokenExchanger, TokenExtractorScripts, TokenPolling, TokenV2Decryptor
Defined in:
lib/teems/services/token_extractor.rb

Overview

Extracts Teams authentication tokens using Safari automation

Constant Summary collapse

TEAMS_URL =
'https://teams.microsoft.com'

Constants included from SafariOAuth

SafariOAuth::SKYPE_RESOURCE

Constants included from OAuthCodeExchange

OAuthCodeExchange::GRAPH_RESOURCE, OAuthCodeExchange::TOKEN_ENDPOINT

Constants included from OAuthUrlBuilder

OAuthUrlBuilder::AUTHORIZE_ENDPOINT, OAuthUrlBuilder::REDIRECT_URI, OAuthUrlBuilder::TEAMS_APP_ID

Constants included from HeadlessExtract

HeadlessExtract::HELPER_TIMEOUT, HeadlessExtract::NEEDS_SAFARI_EXIT

Constants included from HttpSkypeExchange

HttpSkypeExchange::AUTHSVC_URL

Constants included from HelperBinary

HelperBinary::SWIFT_FRAMEWORKS

Constants included from TokenPolling

Teems::Services::TokenPolling::TOKEN_POLL_INTERVAL, Teems::Services::TokenPolling::TOKEN_POLL_MAX_SECONDS, Teems::Services::TokenPolling::V1_POLL_MAX_SECONDS

Constants included from TokenExtractorScripts

Teems::Services::TokenExtractorScripts::DECRYPT_TOKENS_JS, Teems::Services::TokenExtractorScripts::EXTRACT_TOKENS_JS, Teems::Services::TokenExtractorScripts::READ_DECRYPT_RESULT_JS

Constants included from TokenExchangeScripts

Teems::Services::TokenExchangeScripts::EXCHANGE_TOKEN_JS, Teems::Services::TokenExchangeScripts::MANUAL_TOKEN_INSTRUCTIONS

Constants included from TokenV2Decryptor

Teems::Services::TokenV2Decryptor::DECRYPT_RESULT_KEY

Instance Method Summary collapse

Constructor Details

#initialize(output: nil, auth_mode: :default) ⇒ TokenExtractor

Returns a new instance of TokenExtractor.



293
294
295
296
# File 'lib/teems/services/token_extractor.rb', line 293

def initialize(output: nil, auth_mode: :default)
  @output = output
  @auth_mode = auth_mode
end

Instance Method Details

#extractObject



298
299
300
# File 'lib/teems/services/token_extractor.rb', line 298

def extract
  try_headless_extract || try_safari_oauth || safari_extract
end

#manual_instructionsObject



302
# File 'lib/teems/services/token_extractor.rb', line 302

def manual_instructions = MANUAL_TOKEN_INSTRUCTIONS