public async Task AuthorizationCode_Authorize_SaveRefreshToken_AuthorizeAgain(string authorizationCode, string redirectUri) { // Create instance of authentication using one-time code, which you retrieved before this step var initialAuthentication = new AuthorizationCodeAuthentication(ClientId, ClientSecret, authorizationCode, redirectUri); // Initialize context and api InitializeContextAndApi(initialAuthentication); // Use api as usual var agenda = await _api.AccountClient.Agendas.Current().GetAsync(); var contact = await _api.ContactClient.Detail(123).GetAsync(); // Before shutting down the application, save refresh token var refreshToken = initialAuthentication.RefreshToken; // Afterwards, when loading the application, use refresh token when creating authentication var subsequentAuthentication = new AuthorizationCodeAuthentication(ClientId, ClientSecret, refreshToken); // Initialize context and api InitializeContextAndApi(subsequentAuthentication); // Use api as usual var issuedInvoice = await _api.IssuedInvoiceClient.DefaultAsync(); }
public async Task AuthorizationCode_RetrieveAndSaveRefreshToken(string authorizationCode, string redirectUri) { // Create instance of authentication using one-time code, which you retreived before this step var initialAuthentication = new AuthorizationCodeAuthentication(ClientId, ClientSecret, authorizationCode, redirectUri); // Request access token, with this call refresh token will be requested as well var tokenizer = await initialAuthentication.GetTokenAsync(); // Retrieve refresh token (both values are the same) and save it var refreshToken1 = tokenizer.RefreshToken; var refreshToken2 = initialAuthentication.RefreshToken; // Afterwards, refresh token is used for authentication var subsequentAuthentication = new AuthorizationCodeAuthentication(ClientId, ClientSecret, refreshToken1 ?? refreshToken2); // Initialize context and api InitializeContextAndApi(subsequentAuthentication); // Use api as usual var issuedInvoice = await _api.IssuedInvoiceClient.DefaultAsync(); }