Add optional CooperativelyManagedOAuth2 functionality to always check for new tokens
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- authentication
Direzione di ricerca
Inizia da CooperativelyManagedOAuth2Mixin, in particolare da _get_tokens(), _get_and_update_current_tokens() e dalla proprietà access_token utilizzata da BoxSession. Traccia il modo in cui refresh(), revoke() e le richieste API ottengono i token, quindi confronta le opzioni della sottoclasse e dei parametri di inizializzazione. Il lavoro è completato quando il comportamento opzionale scelto è specificato, implementato e coperto sia per i token memorizzati nella cache sia per quelli recuperati di recente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Python
- Stelle
- 460
- Fork
- 223
- Merge medio
- 14h 18m
- PR unite (30g)
- 21
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di box/box-python-sdk
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
box/box-python-sdk#196 ·
-
bug enhancement
box/box-python-sdk#1314 · 6 commenti · 5 assegnatari ·
-
enhancement
box/box-python-sdk#1154 · 3 commenti · 5 assegnatari ·
-
Asynchronous IO Support Apertaenhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
box/box-python-sdk#1155 · 1 commento · 4 reazioni ·
-
enhancement
box/box-python-sdk#1157 · 1 commento · 6 assegnatari ·
Tutte le issue di box/box-python-sdk
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100