Add optional CooperativelyManagedOAuth2 functionality to always check for new tokens

Aperta
#180 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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

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

enhancement

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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di box/box-python-sdk

Tutte le issue di box/box-python-sdk

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.