Add optional CooperativelyManagedOAuth2 functionality to always check for new tokens
- 主要言語
- Python
- スター
- 459
- フォーク
- 223
- 平均マージ
- 8時間 57分
- マージ済み PR(30日)
- 13
説明
`CooperativelyManagedOAuth2Mixin` overrides `_get_tokens()`. When `refresh()` or `revoke()` are called, this protected method is called to get the latest tokens. However, the `access_token` property (used by `BoxSession` for all API requests) still uses the cached `_access_token` attribute.
During normal usage, this means that, after another instance has done a refresh, the `BoxSession` will usually make one API call with expired tokens before grabbing the updated tokens.
This makes sense as a default behavior. If the cooperative auth is happening over a network, then the cost of one extra API call per hour is much less than checking for new tokens for every single API call.
But if the cooperation is happening within a process and the mechanism is low-cost, it may be more economical to override the `access_token` property to always call `_get_and_update_current_tokens()` before returning the `_access_token` attribute.
This can be done with a `CooperativelyManagedOAuth2Mixin` subclass, or an `__init__` parameter to toggle the behavior.
There's also the question of whether this is useful functionality to add to the SDK.
コントリビューションガイド
評価
この issue はまだ評価されていません。