public async Task InitializeAsync() { var token = await GetTokenAsync(); if (token != null) { CurrentAccount = await CreateUserAccount(token); } }
private void GetMsaToken(WebAccountProviderCommand command) { CurrentAccount = null; var task = GetMsaTokenAsync(command); signInStartedCallback(task); }
public async Task SignOutAsync() { await webAccount?.SignOutAsync(); UpdateWebAccount(null); CurrentAccount = null; }
private async Task<UserAccount> GetMsaTokenAsync(WebAccountProviderCommand command) { var request = new WebTokenRequest(command.WebAccountProvider, tokenScope); var result = await WebAuthenticationCoreManager.RequestTokenAsync(request); if (result.ResponseStatus == WebTokenRequestStatus.Success) { UpdateWebAccount(result.ResponseData[0].WebAccount); CurrentAccount = await CreateUserAccount(result.ResponseData[0].Token); return CurrentAccount; } else { throw new InvalidOperationException("WebAuthentication Response: " + result.ResponseStatus); } }