namespace DysonNetwork.Sphere.Auth.OpenId; /// /// Represents the user information from an OIDC provider /// public class OidcUserInfo { public string? UserId { get; set; } public string? Email { get; set; } public bool EmailVerified { get; set; } public string FirstName { get; set; } = ""; public string LastName { get; set; } = ""; public string DisplayName { get; set; } = ""; public string PreferredUsername { get; set; } = ""; public string? ProfilePictureUrl { get; set; } public string Provider { get; set; } = ""; public string? RefreshToken { get; set; } public string? AccessToken { get; set; } public Dictionary ToMetadata() { var metadata = new Dictionary(); if (!string.IsNullOrWhiteSpace(UserId)) metadata["user_id"] = UserId; if (!string.IsNullOrWhiteSpace(Email)) metadata["email"] = Email; metadata["email_verified"] = EmailVerified; if (!string.IsNullOrWhiteSpace(FirstName)) metadata["first_name"] = FirstName; if (!string.IsNullOrWhiteSpace(LastName)) metadata["last_name"] = LastName; if (!string.IsNullOrWhiteSpace(DisplayName)) metadata["display_name"] = DisplayName; if (!string.IsNullOrWhiteSpace(PreferredUsername)) metadata["preferred_username"] = PreferredUsername; if (!string.IsNullOrWhiteSpace(ProfilePictureUrl)) metadata["profile_picture_url"] = ProfilePictureUrl; return metadata; } }