Class: Google::Auth::ClientId

Inherits:
Object
  • Object
show all
Defined in:
lib/googleauth/client_id.rb

Overview

Representation of an application's identity for user authorization flows.

Constant Summary collapse

INSTALLED_APP =
"installed".freeze
WEB_APP =
"web".freeze
CLIENT_ID =
"client_id".freeze
CLIENT_SECRET =
"client_secret".freeze
MISSING_TOP_LEVEL_ELEMENT_ERROR =
"Expected top level property 'installed' or 'web' to be present.".freeze

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id, secret) ⇒ ClientId

Note:

Direction instantion is discouraged to avoid embedding IDs & secrets in source. See #from_file to load from client_secrets.json files.

Initialize the Client ID

Parameters:

  • id (String)

    Text identifier of the client ID

  • secret (String)

    Secret associated with the client ID



51
52
53
54
55
56
57
# File 'lib/googleauth/client_id.rb', line 51

def initialize id, secret
  CredentialsLoader.warn_if_cloud_sdk_credentials id
  raise "Client id can not be nil" if id.nil?
  raise "Client secret can not be nil" if secret.nil?
  @id = id
  @secret = secret
end

Class Attribute Details

.defaultObject

Returns the value of attribute default.



39
40
41
# File 'lib/googleauth/client_id.rb', line 39

def default
  @default
end

Instance Attribute Details

#idString (readonly)

Text identifier of the client ID

Returns:

  • (String)


32
33
34
# File 'lib/googleauth/client_id.rb', line 32

def id
  @id
end

#secretString (readonly)

Secret associated with the client ID

Returns:

  • (String)


36
37
38
# File 'lib/googleauth/client_id.rb', line 36

def secret
  @secret
end

Class Method Details

.from_file(file) ⇒ Google::Auth::ClientID

Constructs a Client ID from a JSON file downloaded from the Google Developers Console.

Parameters:

  • file (String, File)

    Path of file to read from

Returns:

  • (Google::Auth::ClientID)


65
66
67
68
69
70
71
72
# File 'lib/googleauth/client_id.rb', line 65

def self.from_file file
  raise "File can not be nil." if file.nil?
  File.open file.to_s do |f|
    json = f.read
    config = MultiJson.load json
    from_hash config
  end
end

.from_hash(config) ⇒ Google::Auth::ClientID

Constructs a Client ID from a previously loaded JSON file. The hash structure should match the expected JSON format.

Parameters:

  • config (hash)

    Parsed contents of the JSON file

Returns:

  • (Google::Auth::ClientID)

Raises:



81
82
83
84
85
86
# File 'lib/googleauth/client_id.rb', line 81

def self.from_hash config
  raise "Hash can not be nil." if config.nil?
  raw_detail = config[INSTALLED_APP] || config[WEB_APP]
  raise MISSING_TOP_LEVEL_ELEMENT_ERROR if raw_detail.nil?
  ClientId.new raw_detail[CLIENT_ID], raw_detail[CLIENT_SECRET]
end