Sto sviluppando un'applicazione universale per Windows (Windows 10) in cui ho un'app "Due livelli": Su dispositivi IoT (ad es. Raspberry Pi 2) mostra solo contenuto, ma su tutti gli altri dispositivi (PC, Notebook, Smartphone, ecc.) avete qualcosa come un controller per i dati visualizzati.Ricezione del token di aggiornamento da Windows Live SDK nell'app universale di Windows
Una delle funzionalità che voglio realizzare è l'accesso a Windows Live nella parte Controller per ottenere le informazioni del calendario nella parte Display-IoT. Per questo io do agli utenti la possibilità di accedere con Windows Live come illustrato di seguito:
LiveAuthClient auth = new LiveAuthClient();
LiveLoginResult loginResult = await auth.LoginAsync(new string[] { "wl.signin", "wl.calendars", "wl.offline_access" });
if (loginResult.Status == LiveConnectSessionStatus.Connected)
{
//Save the AccessToken from loginResult.Session.AccessToken
TokenHandler.Save(loginResult.Session.AccessToken); //AccessToken is quite accessable right here
//But as far as I know I should save the RefreshToken, but the Session has no field for it
}
Quindi il mio proplem è che non ottengo un campo dalla LiveConnectSession dove il RefreshToken potrebbe essere conservato, ma tutti gli articoli che ho letto stanno dicendo che ho solo bisogno di aggiungere wl.offline_access agli ambiti per ricevere un RefreshToken.
Non ho molta familiarità con OAuth2.0 e SDK/API stanno prendendo piede su OAuth, quindi qualcuno sa qualcosa, cosa sto facendo male o come devo gestirlo?
Sono davvero grato per tutte le risposte ben intenzionate e utili!
PS: sto utilizzando l'SDK 5.6 dal vivo e non la nuova API Microsoft Onedrive, perché non ha accesso alle informazioni del calendario
Nessuno con un'idea? –
Se date un'occhiata a [la fonte di liveSdk] (https://github.com/liveservices/LiveSDK-for-Windows), allora vedrete che sulla maggior parte delle richieste in esecuzione, il metodo 'RefreshTokenIfNeeded()' è chiamato. Quindi penso che il token di aggiornamento non sia esposto, in quanto viene gestito automaticamente. – Romasz
Ho installato Live SDK 5.6.3 dal pacchetto nuget, e lì loginResult.Session ha la proprietà RefreshToken, quindi non sono sicuro di cosa si usi dove non ci sono tali proprietà. – Evk