Class: Nylas::Auth
- Includes:
- ApiOperations::Get, ApiOperations::Post
- Defined in:
- lib/nylas/resources/auth.rb
Overview
Auth
Instance Attribute Summary collapse
-
#grants ⇒ Object
readonly
Returns the value of attribute grants.
Instance Method Summary collapse
-
#exchange_code_for_token(request) ⇒ Hash
Exchanges an authorization code for an access token.
-
#initialize(sdk_instance) ⇒ Auth
constructor
Initializes Auth.
-
#refresh_access_token(request) ⇒ Hash
Refreshes an access token.
-
#revoke(token) ⇒ Boolean
Revokes a single access token.
-
#url_for_admin_consent(config) ⇒ String
Builds the URL for admin consent authentication for Microsoft.
-
#url_for_oauth2(config) ⇒ String
Builds the URL for authenticating users to your application with OAuth 2.0.
-
#url_for_oauth2_pkce(config) ⇒ OpenStruct
Builds the URL for authenticating users to your application with OAuth 2.0 and PKCE.
Constructor Details
Instance Attribute Details
#grants ⇒ Object (readonly)
Returns the value of attribute grants.
26 27 28 |
# File 'lib/nylas/resources/auth.rb', line 26 def grants @grants end |
Instance Method Details
#exchange_code_for_token(request) ⇒ Hash
Exchanges an authorization code for an access token.
40 41 42 43 44 |
# File 'lib/nylas/resources/auth.rb', line 40 def exchange_code_for_token(request) request[:grant_type] = "authorization_code" execute_token_request(request) end |
#refresh_access_token(request) ⇒ Hash
Refreshes an access token.
50 51 52 53 54 |
# File 'lib/nylas/resources/auth.rb', line 50 def refresh_access_token(request) request[:grant_type] = "refresh_token" execute_token_request(request) end |
#revoke(token) ⇒ Boolean
Revokes a single access token.
93 94 95 96 97 98 99 100 101 |
# File 'lib/nylas/resources/auth.rb', line 93 def revoke(token) post( path: "#{api_uri}/v3/connect/revoke", query_params: { token: token } ) true end |
#url_for_admin_consent(config) ⇒ String
Builds the URL for admin consent authentication for Microsoft.
79 80 81 82 83 84 85 86 87 |
# File 'lib/nylas/resources/auth.rb', line 79 def (config) config_with_provider = config.merge("provider" => "microsoft") url = url_auth_builder(config_with_provider) query_params = (config) url.query = URI.encode_www_form(query_params) url.to_s end |
#url_for_oauth2(config) ⇒ String
Builds the URL for authenticating users to your application with OAuth 2.0.
32 33 34 |
# File 'lib/nylas/resources/auth.rb', line 32 def url_for_oauth2(config) url_auth_builder(config).to_s end |
#url_for_oauth2_pkce(config) ⇒ OpenStruct
Builds the URL for authenticating users to your application with OAuth 2.0 and PKCE.
IMPORTANT: You must store the 'secret' returned to use it inside the CodeExchange flow.
61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/nylas/resources/auth.rb', line 61 def url_for_oauth2_pkce(config) url = url_auth_builder(config) # Generates a secret and hashes it. secret = SecureRandom.uuid secret_hash = hash_pkce_secret(secret) # Adds code challenge to URL generation. url.query = build_query_with_pkce(config, secret_hash) # Returns the URL with secret and hashed secret. OpenStruct.new(secret: secret, secret_hash: secret_hash, url: url.to_s) end |