Class: Nylas::Auth
- Includes:
- ApiOperations::Get, ApiOperations::Post
- Defined in:
- lib/nylas/resources/auth.rb
Overview
Auth
Instance Method Summary collapse
-
#custom_authentication(request_body) ⇒ Array(Hash, String)
Create a Grant via Custom Authentication.
-
#detect_provider(params) ⇒ Array(Hash, String)
Detects the provider of an email address.
-
#exchange_code_for_token(request) ⇒ Hash
Exchanges an authorization code for an access token.
-
#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) ⇒ Hash
Builds the URL for authenticating users to your application with OAuth 2.0 and PKCE.
Methods inherited from Resource
Constructor Details
This class inherits a constructor from Nylas::Resource
Instance Method Details
#custom_authentication(request_body) ⇒ Array(Hash, String)
Create a Grant via Custom Authentication.
41 42 43 44 45 46 |
# File 'lib/nylas/resources/auth.rb', line 41 def custom_authentication(request_body) post( path: "#{api_uri}/v3/connect/custom", request_body: request_body ) end |
#detect_provider(params) ⇒ Array(Hash, String)
Detects the provider of an email address.
106 107 108 109 110 111 |
# File 'lib/nylas/resources/auth.rb', line 106 def detect_provider(params) post( path: "#{api_uri}/v3/providers/detect", query_params: params ) end |
#exchange_code_for_token(request) ⇒ Hash
Exchanges an authorization code for an access token.
31 32 33 34 35 |
# File 'lib/nylas/resources/auth.rb', line 31 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.
52 53 54 55 56 |
# File 'lib/nylas/resources/auth.rb', line 52 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.
81 82 83 84 85 86 87 |
# File 'lib/nylas/resources/auth.rb', line 81 def (config) config_with_provider = config.merge("provider" => "microsoft") url = url_auth_builder(config_with_provider) url.query = (config) url.to_s end |
#url_for_oauth2(config) ⇒ String
Builds the URL for authenticating users to your application with OAuth 2.0.
23 24 25 |
# File 'lib/nylas/resources/auth.rb', line 23 def url_for_oauth2(config) url_auth_builder(config).to_s end |
#url_for_oauth2_pkce(config) ⇒ Hash
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.
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/nylas/resources/auth.rb', line 63 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. { secret: secret, secret_hash: secret_hash, url: url.to_s } end |