async Task LoadCachedTokenAsync() { StoreSettings settings = await ReadSettingsAsync(); if (settings != null) { try { if (!string.IsNullOrEmpty(settings.AuthToken) && JwtUtility.GetTokenExpiration(settings.AuthToken) > DateTime.UtcNow) { MobileService.CurrentUser = new MobileServiceUser(settings.UserId) { MobileServiceAuthenticationToken = settings.AuthToken }; } } catch (InvalidTokenException) { settings.AuthToken = string.Empty; settings.UserId = string.Empty; await SaveSettingsAsync(settings); } } }
async Task CacheToken(MobileServiceUser user) { var claims = JwtUtility.GetClaims(user.MobileServiceAuthenticationToken); var settings = new StoreSettings { UserId = claims[JwtClaimNames.Subject], Email = claims["email"], FirstName = claims[JwtClaimNames.GivenName], LastName = claims[JwtClaimNames.FamilyName], RoleName = claims["role"], AuthToken = user.MobileServiceAuthenticationToken }; await SaveSettingsAsync(settings); }