pywry.auth.session¶
OAuth2 session manager with automatic token refresh.
SessionManager¶
pywry.auth.session.SessionManager
¶
SessionManager(provider: OAuthProvider, token_store: TokenStore, session_key: str = 'default', session_store: SessionStore | None = None, refresh_buffer_seconds: int = 60, on_reauth_required: Callable[[], None] | None = None)
Manages OAuth2 token lifecycle with automatic refresh.
| PARAMETER | DESCRIPTION |
|---|---|
provider
|
The OAuth2 provider for token refresh.
TYPE:
|
token_store
|
Store for persisting tokens.
TYPE:
|
session_key
|
Key used to identify stored tokens (e.g., user ID).
TYPE:
|
session_store
|
Session store for internal session management.
TYPE:
|
refresh_buffer_seconds
|
Seconds before token expiry to trigger refresh (default
TYPE:
|
on_reauth_required
|
Callback invoked when refresh fails and re-authentication is needed.
Signature:
TYPE:
|
Initialize the session manager.
Functions¶
initialize
async
¶
Load existing tokens from store and validate.
| RETURNS | DESCRIPTION |
|---|---|
OAuthTokenSet or None
|
The stored tokens if valid, or None if no tokens are stored or they have expired. |
save_tokens
async
¶
Persist tokens and schedule background refresh.
| PARAMETER | DESCRIPTION |
|---|---|
tokens
|
The token set to save.
TYPE:
|
get_access_token
async
¶
Get a valid access token, refreshing if near expiry.
| RETURNS | DESCRIPTION |
|---|---|
str
|
A valid access token. |
| RAISES | DESCRIPTION |
|---|---|
TokenExpiredError
|
If the token is expired and cannot be refreshed. |
refresh
async
¶
Refresh the access token.
Uses the stored refresh token to obtain a new access token.
Falls back to on_reauth_required if refresh fails.
| RETURNS | DESCRIPTION |
|---|---|
OAuthTokenSet
|
A new token set. |
| RAISES | DESCRIPTION |
|---|---|
TokenRefreshError
|
If refresh fails and no re-auth callback is set. |
logout
async
¶
Clear all tokens and cancel scheduled refresh.
Optionally revokes the token at the provider.