Voglio implementare un'API push simile a API Garmin Connect . questa API consente ai client di ottenere i dati degli utenti di garmin, poiché garmin invia ai client i file dell'utente ogni volta che viene creato.
abbiamo tre attori (il client [l'app che vuole connettersi all'API], l'API Connect (il server api) e l'utente).
quell'API funziona come segue: (Utilizzando OAUTH1.0)
1- il cliente ha una chiave utente e un segreto, prima firma la richiesta e invia il segreto dell'utente all'api.
2- il server api risponde alla richiesta con token e segreto di richiesta non autorizzati.
3- il client invia nuovamente al server API una richiesta firmata dal token di richiesta.
4- il server api consente all'utente di accedere e selezionare se acconsentire o meno alla connessione, quando concordato, il server API invia un token di verifica all'url di richiamata, specificato dal client.
5- il client invia al server API il token di verifica.
6- il server API restituisce la chiave di accesso e il segreto, che il client li memorizzerà per l'utente (per utente).
7- successivamente, il server API invierà i file (push) all'url push del client, come richiesta multipart insieme al segreto di accesso.
e così il client sa chi è l'utente a cui appartiene il file.
Voglio implementare qualcosa di simile a questo, con una push api, ma mi piacerebbe usare oauth2 invece di oauth1. il problema che ho è principalmente nel token di accesso di lunga durata che viene fornito nell'ultimo passaggio, e senza firma o autenticazione, non posso nemmeno usare un meccanismo di aggiornamento dei token.
come posso farlo, ci sono pensieri a riguardo ??