public Task SaveAsync(AuthenticationTicket authenticationTicket, CancellationToken cancellationToken) { var storageItem = new AuthenticationTicketStorageItem { Version = Version, AuthorizationKey = authenticationTicket.AuthorizationKey, User = authenticationTicket.User }; return(this.secureStorage.SaveAsync(JsonConvert.SerializeObject(storageItem), cancellationToken)); }
private AuthenticationTicket GetAuthenticationTicketFromJObject(JObject payload, int payloadVersion, CancellationToken cancellationToken) { switch (payloadVersion) { case Version: AuthenticationTicketStorageItem storageItem = payload.ToObject <AuthenticationTicketStorageItem>(); if (string.IsNullOrEmpty(storageItem.AuthorizationKey) || string.IsNullOrEmpty(storageItem.User?.Id)) { throw new InvalidOperationException("Stored authentication ticket is not valid."); } return(new AuthenticationTicket(storageItem.AuthorizationKey, null, storageItem.User)); default: throw new ArgumentOutOfRangeException(nameof(payloadVersion), payloadVersion, "Unknown version number."); } }