google.auth.credentials module¶
Interfaces for credentials.
-
class
Credentials[source]¶ Bases:
objectBase class for all credentials.
All credentials have a
tokenthat is used for authentication and may also optionally set anexpiryto indicate when the token will no longer be valid.Most credentials will be
invaliduntilrefresh()is called. Credentials can do this automatically before the first HTTP request inbefore_request().Although the token and expiration will change as the credentials are
refreshedand used, credentials should be considered immutable. Various credentials will accept configuration such as private keys, scopes, and other options. These options are not changeable after construction. Some classes will provide mechanisms to copy the credentials with modifications such asScopedCredentials.with_scopes().-
token= None¶ The bearer token that can be used in HTTP headers to make authenticated requests.
- Type
-
expiry= None¶ When the token expires and is no longer valid. If this is None, the token is assumed to never expire.
-
property
expired¶ Checks if the credentials are expired.
Note that credentials can be invalid but not expired because Credentials with
expiryset to None is considered to never expire.
-
property
valid¶ Checks the validity of the credentials.
This is True if the credentials have a
tokenand the token is notexpired.
-
abstract
refresh(request)[source]¶ Refreshes the access token.
- Parameters
request (google.auth.transport.Request) – The object used to make HTTP requests.
- Raises
google.auth.exceptions.RefreshError – If the credentials could not be refreshed.
-
before_request(request, method, url, headers)[source]¶ Performs credential-specific before request logic.
Refreshes the credentials if necessary, then calls
apply()to apply the token to the authentication header.- Parameters
request (google.auth.transport.Request) – The object used to make HTTP requests.
method (str) – The request’s HTTP method or the RPC method being invoked.
url (str) – The request’s URI or the RPC service’s URI.
headers (Mapping) – The request’s headers.
-
-
class
AnonymousCredentials[source]¶ Bases:
google.auth.credentials.CredentialsCredentials that do not provide any authentication information.
These are useful in the case of services that support anonymous access or local service emulators that do not use credentials.
-
property
expired¶ Returns False, anonymous credentials never expire.
-
property
valid¶ Returns True, anonymous credentials are always valid.
-
apply(headers, token=None)[source]¶ Anonymous credentials do nothing to the request.
The optional
tokenargument is not supported.- Raises
ValueError – If a token was specified.
-
property
-
class
ReadOnlyScoped[source]¶ Bases:
objectInterface for credentials whose scopes can be queried.
OAuth 2.0-based credentials allow limiting access using scopes as described in RFC6749 Section 3.3. If a credential class implements this interface then the credentials either use scopes in their implementation.
Some credentials require scopes in order to obtain a token. You can check if scoping is necessary with
requires_scopes:if credentials.requires_scopes: # Scoping is required. credentials = credentials.with_scopes(scopes=['one', 'two'])
Credentials that require scopes must either be constructed with scopes:
credentials = SomeScopedCredentials(scopes=['one', 'two'])
Or must copy an existing instance using
with_scopes():scoped_credentials = credentials.with_scopes(scopes=['one', 'two'])
Some credentials have scopes but do not allow or require scopes to be set, these credentials can be used as-is.
-
abstract property
requires_scopes¶ True if these credentials require scopes to obtain an access token.
-
abstract property
-
class
Scoped[source]¶ Bases:
google.auth.credentials.ReadOnlyScopedInterface for credentials whose scopes can be replaced while copying.
OAuth 2.0-based credentials allow limiting access using scopes as described in RFC6749 Section 3.3. If a credential class implements this interface then the credentials either use scopes in their implementation.
Some credentials require scopes in order to obtain a token. You can check if scoping is necessary with
requires_scopes:if credentials.requires_scopes: # Scoping is required. credentials = credentials.create_scoped(['one', 'two'])
Credentials that require scopes must either be constructed with scopes:
credentials = SomeScopedCredentials(scopes=['one', 'two'])
Or must copy an existing instance using
with_scopes():scoped_credentials = credentials.with_scopes(scopes=['one', 'two'])
Some credentials have scopes but do not allow or require scopes to be set, these credentials can be used as-is.
-
abstract
with_scopes(scopes)[source]¶ Create a copy of these credentials with the specified scopes.
- Parameters
scopes (
Sequence[str]) – The list of scopes to attach to the current credentials.- Raises
NotImplementedError – If the credentials’ scopes can not be changed. This can be avoided by checking
requires_scopesbefore calling this method.
-
has_scopes(scopes)¶ Checks if the credentials have the given scopes.
-
abstract property
requires_scopes¶ True if these credentials require scopes to obtain an access token.
-
abstract
-
with_scopes_if_required(credentials, scopes)[source]¶ Creates a copy of the credentials with scopes if scoping is required.
This helper function is useful when you do not know (or care to know) the specific type of credentials you are using (such as when you use
google.auth.default()). This function will callScoped.with_scopes()if the credentials are scoped credentials and if the credentials require scoping. Otherwise, it will return the credentials as-is.- Parameters
credentials (google.auth.credentials.Credentials) – The credentials to scope if necessary.
- Returns
- Either a new set of scoped
credentials, or the passed in credentials instance if no scoping was required.
- Return type