Reference documentation and code samples for the signet class Signet::OAuth2::Client.
Inherits
- Object
Methods
#access_token
def access_token() -> String
Returns the access token associated with this client.
- (String) — The access token.
#access_token=
def access_token=(new_access_token)
Sets the access token associated with this client.
- new_access_token (String) — The access token.
#access_type
def access_type() -> String, Symbol
Returns the current access type parameter for #authorization_uri.
- (String, Symbol) — The current access type.
#access_type=
def access_type=(new_access_type)
Sets the current access type parameter for #authorization_uri.
- new_access_type (String, Symbol) — The current access type.
#additional_parameters
def additional_parameters() -> Hash
Returns the set of additional (non standard) parameters to be used by the client.
- (Hash) — The pass through parameters.
#additional_parameters=
def additional_parameters=(new_additional_parameters)
Sets additional (non standard) parameters to be used by the client.
- new_additional_parameters (Hash) — The parameters.
#audience
def audience() -> String
Returns the target audience ID when issuing assertions. Used only by the assertion grant type.
- (String) — Target audience ID.
#audience=
def audience=(new_audience)
Sets the target audience ID when issuing assertions. Used only by the assertion grant type.
- new_audience (String) — Target audience ID
#authorization_uri
def authorization_uri(options = {}) -> Addressable::URI
Returns the authorization URI that the user should be redirected to.
- (Addressable::URI) — The authorization URI.
- (ArgumentError)
#authorization_uri=
def authorization_uri=(new_authorization_uri)
Sets the authorization URI for this client.
- new_authorization_uri (Addressable::URI, Hash, String, #to_str) — The authorization URI.
#clear_credentials!
def clear_credentials!()
Removes all credentials from the client.
#client_id
def client_id() -> String
Returns the client identifier for this client.
- (String) — The client identifier.
#client_id=
def client_id=(new_client_id)
Sets the client identifier for this client.
- new_client_id (String) — The client identifier.
#client_secret
def client_secret() -> String
Returns the client secret for this client.
- (String) — The client secret.
#client_secret=
def client_secret=(new_client_secret)
Sets the client secret for this client.
- new_client_secret (String) — The client secret.
#code
def code() -> String
Returns the authorization code issued to this client. Used only by the authorization code access grant type.
- (String) — The authorization code.
#code=
def code=(new_code)
Sets the authorization code issued to this client. Used only by the authorization code access grant type.
- new_code (String) — The authorization code.
#coerce_uri
def coerce_uri(incoming_uri)
Addressable expects URIs formatted as hashes to come in with symbols as keys. Returns nil implicitly for the nil case.
#decoded_id_token
def decoded_id_token(public_key = nil, options = {}) -> String
Returns the decoded ID token associated with this client.
- public_key (OpenSSL::PKey::RSA, Object) — The public key to use to verify the ID token. Skips verification if omitted.
- (String) — The decoded ID token.
#expired?
def expired?() -> TrueClass, FalseClass
Returns true if the access token has expired. Returns false if the token has not expired or has an nil @expires_at.
- (TrueClass, FalseClass) — The expiration state of the access token.
#expires_at
def expires_at() -> Time, nil
Returns the timestamp the access token will expire at. Returns nil if the token does not expire.
- (Time, nil) — The access token lifetime.
#expires_at=
def expires_at=(new_expires_at)
Limits the lifetime of the access token as number of seconds since the Epoch. Nil values will be treated as though the token does not expire.
- new_expires_at (String, Integer, Time, nil) — The access token expiration time.
#expires_in
def expires_in() -> Integer, nil
Returns the lifetime of the access token in seconds. Returns nil if the token does not expire.
- (Integer, nil) — The access token lifetime.
#expires_in=
def expires_in=(new_expires_in)
Sets the lifetime of the access token in seconds. Resets the issued_at timestamp. Nil values will be treated as though the token does not expire.
- new_expires_in (String, Integer, nil) — The access token lifetime.
#expires_within?
def expires_within?(sec) -> TrueClass, FalseClass
Returns true if the access token has expired or expires within the next n seconds. Returns false for tokens with a nil @expires_at.
- sec (Integer) — Max number of seconds from now where a token is still considered expired.
- (TrueClass, FalseClass) — The expiration state of the access token.
#expiry
def expiry() -> Integer
Returns the number of seconds assertions are valid for Used only by the assertion grant type.
- (Integer) — Assertion expiry, in seconds
#expiry=
def expiry=(new_expiry)
Sets the number of seconds assertions are valid for Used only by the assertion grant type.
- new_expiry (Integer, String) — Assertion expiry, in seconds
#extension_parameters
def extension_parameters() -> Hash
Returns the set of extension parameters used by the client. Used only by extension access grant types.
- (Hash) — The extension parameters.
#extension_parameters=
def extension_parameters=(new_extension_parameters)
Sets extension parameters used by the client. Used only by extension access grant types.
- new_extension_parameters (Hash) — The parameters.
#fetch_access_token
def fetch_access_token(options = {})
- (ArgumentError)
#fetch_access_token!
def fetch_access_token!(options = {})
#fetch_protected_resource
def fetch_protected_resource(options = {}) -> Array
Transmits a request for a protected resource.
-
options (Hash) —
The configuration parameters for the request.
:request
- A pre-constructed request. An OAuth 2 Authorization header will be added to it, as well as an explicit Cache-Controlno-store
directive.:method
- The HTTP method for the request. Defaults to 'GET'.:uri
- The URI for the request.:headers
- The HTTP headers for the request.:body
- The HTTP body for the request.:realm
- The Authorization realm. See RFC 2617.:connection
- The HTTP connection to use. Must be of typeFaraday::Connection
.
- (Array) — The response object.
# Using Net::HTTP response = client.fetch_protected_resource( :uri => 'http://www.example.com/protected/resource' )
#generate_authenticated_request
def generate_authenticated_request(options = {}) -> Faraday::Request
Generates an authenticated request for protected resources.
-
options (Hash) —
The configuration parameters for the request.
:request
- A pre-constructed request. An OAuth 2 Authorization header will be added to it, as well as an explicit Cache-Controlno-store
directive.:method
- The HTTP method for the request. Defaults to 'GET'.:uri
- The URI for the request.:headers
- The HTTP headers for the request.:body
- The HTTP body for the request.:realm
- The Authorization realm. See RFC 2617.
- (Faraday::Request) — The request object.
- (ArgumentError)
#grant_type
def grant_type() -> String
Returns the inferred grant type, based on the current state of the
client object. Returns "none"
if the client has insufficient
information to make an in-band authorization request.
- (String) — The inferred grant type.
#grant_type=
def grant_type=(new_grant_type)
#granted_scopes
def granted_scopes() -> Array, nil
Returns the scopes granted by the authorization server.
- (Array, nil) — The scope of access returned by the authorization server.
#granted_scopes=
def granted_scopes=(new_granted_scopes)
Sets the scopes returned by authorization server for this client.
- new_granted_scopes (String, Array, nil) — The scope of access returned by authorization server. This will ideally be expressed as space-delimited String.
#id_token
def id_token() -> String
Returns the ID token associated with this client.
- (String) — The ID token.
#id_token=
def id_token=(new_id_token)
Sets the ID token associated with this client.
- new_id_token (String) — The ID token.
#initialize
def initialize(options = {}) -> Client
Creates an OAuth 2.0 client.
-
options (Hash) —
The configuration parameters for the client.
:authorization_uri
- The authorization server's HTTP endpoint capable of authenticating the end-user and obtaining authorization.:token_credential_uri
- The authorization server's HTTP endpoint capable of issuing tokens and refreshing expired tokens.:client_id
- A unique identifier issued to the client to identify itself to the authorization server.:client_secret
- A shared symmetric secret issued by the authorization server, which is used to authenticate the client.:scope
- The scope of the access request, expressed either as an Array or as a space-delimited String.:target_audience
- The final target audience for ID tokens fetched by this client, as a String.:state
- An arbitrary string designed to allow the client to maintain state.:code
- The authorization code received from the authorization server.:redirect_uri
- The redirection URI used in the initial request.:username
- The resource owner's username.:password
- The resource owner's password.:issuer
- Issuer ID when using assertion profile:person
- Target user for assertions:expiry
- Number of seconds assertions are valid for:signing_key
- Signing key when using assertion profile:refresh_token
- The refresh token associated with the access token to be refreshed.:access_token
- The current access token for this client.:id_token
- The current ID token for this client.:extension_parameters
- When using an extension grant type, this the set of parameters used by that extension.:granted_scopes
- All scopes granted by authorization server.
- (Client) — a new instance of Client
client = Signet::OAuth2::Client.new( :authorization_uri => 'https://example.server.com/authorization', :token_credential_uri => 'https://example.server.com/token', :client_id => 'anonymous', :client_secret => 'anonymous', :scope => 'example', :redirect_uri => 'https://example.client.com/oauth' )
#issued_at
def issued_at() -> Time, nil
Returns the timestamp the access token was issued at.
- (Time, nil) — The access token issuance time.
#issued_at=
def issued_at=(new_issued_at)
Sets the timestamp the access token was issued at.
- new_issued_at (String, Integer, Time) — The access token issuance time.
#issuer
def issuer() -> String
Returns the issuer ID associated with this client. Used only by the assertion grant type.
- (String) — Issuer id.
#issuer=
def issuer=(new_issuer)
Sets the issuer ID associated with this client. Used only by the assertion grant type.
- new_issuer (String) — Issuer ID (typical in email adddress form).
#password
def password() -> String
Returns the password associated with this client. Used only by the resource owner password credential access grant type.
- (String) — The password.
#password=
def password=(new_password)
Sets the password associated with this client. Used only by the resource owner password credential access grant type.
- new_password (String) — The password.
#person
def person() -> String
Returns the target resource owner for impersonation. Used only by the assertion grant type.
- (String) — Target user for impersonation.
#person=
def person=(new_person)
Sets the target resource owner for impersonation. Used only by the assertion grant type.
- new_person (String) — Target user for impersonation
#principal
def principal() -> String
Returns the target resource owner for impersonation. Used only by the assertion grant type.
- (String) — Target user for impersonation.
#principal=
def principal=(new_person)
Sets the target resource owner for impersonation. Used only by the assertion grant type.
- new_person (String) — Target user for impersonation
#redirect_uri
def redirect_uri() -> String
Returns the redirect URI for this client.
- (String) — The redirect URI.
#redirect_uri=
def redirect_uri=(new_redirect_uri)
Sets the redirect URI for this client.
- new_redirect_uri (String) — The redirect URI.
#refresh!
def refresh!(options = {})
Refresh the access token, if possible
#refresh_token
def refresh_token() -> String
Returns the refresh token associated with this client.
- (String) — The refresh token.
#refresh_token=
def refresh_token=(new_refresh_token)
Sets the refresh token associated with this client.
- new_refresh_token (String) — The refresh token.
#scope
def scope() -> Array
Returns the scope for this client. Scope is a list of access ranges defined by the authorization server.
- (Array) — The scope of access the client is requesting.
#scope=
def scope=(new_scope)
Sets the scope for this client.
- new_scope (Array, String) — The scope of access the client is requesting. This may be expressed as either an Array of String objects or as a space-delimited String.
#signing_algorithm
def signing_algorithm() -> String
Algorithm used for signing JWTs
- (String) — Signing algorithm
#signing_key
def signing_key() -> String, OpenSSL::PKey
Returns the signing key associated with this client. Used only by the assertion grant type.
- (String, OpenSSL::PKey) — Signing key
#signing_key=
def signing_key=(new_key)
Sets the signing key when issuing assertions. Used only by the assertion grant type.
- new_key (String, OpenSSL::Pkey) — Signing key. Either private key for RSA or string for HMAC algorithm
#state
def state() -> String
Returns the client's current state value.
- (String) — The state value.
#state=
def state=(new_state)
Sets the client's current state value.
- new_state (String) — The state value.
#sub
def sub()
The target "sub" when issuing assertions. Used in some Admin SDK APIs.
#sub=
def sub=(value)
The target "sub" when issuing assertions. Used in some Admin SDK APIs.
#target_audience
def target_audience() -> String
Returns the final target audience for ID tokens fetched by this client.
- (String) — The target audience.
#target_audience=
def target_audience=(new_target_audience)
Sets the final target audience for ID tokens fetched by this client.
- new_target_audience (String) — The new target audience.
#to_json
def to_json(*_args) -> String
Serialize the client object to JSON.
- (String) — A serialized JSON representation of the client.
#to_jwt
def to_jwt(options = {})
#token_credential_uri
def token_credential_uri() -> Addressable::URI
Returns the token credential URI for this client.
- (Addressable::URI) — The token credential URI.
#token_credential_uri=
def token_credential_uri=(new_token_credential_uri)
Sets the token credential URI for this client.
- new_token_credential_uri (Addressable::URI, Hash, String, #to_str) — The token credential URI.
#update!
def update!(options = {})
Updates an OAuth 2.0 client.
-
options (Hash) —
The configuration parameters for the client.
:authorization_uri
- The authorization server's HTTP endpoint capable of authenticating the end-user and obtaining authorization.:token_credential_uri
- The authorization server's HTTP endpoint capable of issuing tokens and refreshing expired tokens.:client_id
- A unique identifier issued to the client to identify itself to the authorization server.:client_secret
- A shared symmetric secret issued by the authorization server, which is used to authenticate the client.:scope
- The scope of the access request, expressed either as an Array or as a space-delimited String.:target_audience
- The final target audience for ID tokens fetched by this client, as a String.:state
- An arbitrary string designed to allow the client to maintain state.:code
- The authorization code received from the authorization server.:redirect_uri
- The redirection URI used in the initial request.:username
- The resource owner's username.:password
- The resource owner's password.:issuer
- Issuer ID when using assertion profile:audience
- Target audience for assertions:person
- Target user for assertions:expiry
- Number of seconds assertions are valid for:signing_key
- Signing key when using assertion profile:refresh_token
- The refresh token associated with the access token to be refreshed.:access_token
- The current access token for this client.:access_type
- The current access type parameter for #authorization_uri.:id_token
- The current ID token for this client.:extension_parameters
- When using an extension grant type, this is the set of parameters used by that extension.:granted_scopes
- All scopes granted by authorization server.
client.update!( :code => 'i1WsRn1uB1', :access_token => 'FJQbwq9', :expires_in => 3600 )
#update_token!
def update_token!(options = {})
Updates an OAuth 2.0 client.
-
options (Hash) —
The configuration parameters related to the token.
:refresh_token
- The refresh token associated with the access token to be refreshed.:access_token
- The current access token for this client.:id_token
- The current ID token for this client.:expires_in
- The time in seconds until access token expiration.:expires_at
- The time as an integer number of seconds since the Epoch:issued_at
- The timestamp that the token was issued at.
client.update!( :refresh_token => 'n4E9O119d', :access_token => 'FJQbwq9', :expires_in => 3600 )
#username
def username() -> String
Returns the username associated with this client. Used only by the resource owner password credential access grant type.
- (String) — The username.
#username=
def username=(new_username)
Sets the username associated with this client. Used only by the resource owner password credential access grant type.
- new_username (String) — The username.
Constants
OOB_MODES
value: ["urn:ietf:wg:oauth:2.0:oob:auto", "urn:ietf:wg:oauth:2.0:oob", "oob"].freeze