Sto utilizzando Google Sign-In. Un utente arriva al mio sito e accede con gapi.auth2.getAuthInstance().signIn()
, oppure sono già connessi e quando la pagina viene caricata (o ricaricata) recuperiamo lo stato. A questo punto ho un token di identità valido per un'ora che posso convalidare sul server.Come aggiornare gli accessi di accesso google scaduti?
Quando un utente lascia il browser seduto (ad esempio, durante la notte), questo token scade. gapi.auth2.getAuthInstance().isSignedIn.get()
restituisce true, ma il token non convalida.
Come posso accedere a un utente e mantenerlo connesso mentre la loro sessione è attiva (ovvero il browser non è stato chiuso)? O aggiorna il token? Qualcosa di più grazioso di ricaricare la pagina ...
Modifica: il token di aggiornamento non è una risposta corretta; Non voglio l'accesso offline (e non voglio chiedere il permesso). Google ovviamente pensa che l'utente sia ancora registrato nella mia applicazione; l'utente può ricaricare la pagina e ottenere un nuovo token senza fornire nuovamente le credenziali. Sicuramente esiste un meccanismo più elegante di un iframe nascosto per ottenere un token aggiornato?
Sei riuscito a trovare una risposta corretta a questo? Ho lo stesso problema e sono in perdita su come risolverlo. Inizialmente sono andato anche per i Token di aggiornamento, come suggerito nella risposta, ma sono d'accordo sul fatto che questa non è una soluzione reale. – csvan
Nessuna risposta ancora, che è sconcertante. Quando avrò un po 'di tempo libero cercherò di avviare una seconda sessione di login in un iframe nascosto e raccogliere un nuovo token da lì.Nel frattempo i miei utenti sono costretti a ricaricare la loro pagina una volta all'ora - schifo. – stickfigure
L'API di Google tenta di aggiornare il suo token di accesso 5 minuti prima che scada, quindi la maggior parte delle sessioni attive non dovrebbe essere un problema. Il vero problema è cosa succede con ['setTimeout()' quando il computer dorme] (http://stackoverflow.com/a/6347336/1462337). Su alcune piattaforme (tutte?) L'aggiornamento del token sarà ulteriormente ritardato dal momento in cui il computer è in stop, il che probabilmente sarà il tempo trascorso della scadenza del token corrente. La soluzione suggerita da @ JacekKopecký - testare per la scadenza e usare 'reloadAuthResponse()' - funziona bene. L'unico inconveniente è che questo è un metodo non documentato. – rhashimoto