public SpaceOptions()

in src/JetBrains.Space.AspNetCore.Authentication/SpaceOptions.cs [21:62]


    public SpaceOptions()
    {
        CallbackPath = new PathString("/signin-space");
            
        AuthorizationEndpoint = SpaceDefaults.AuthorizationEndpointPath;
        TokenEndpoint = SpaceDefaults.TokenEndpointPath;
        UserInformationEndpoint = SpaceDefaults.UserInformationEndpointPath;
            
        ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
        ClaimActions.MapJsonKey(SpaceClaimTypes.UserId, "id");
        ClaimActions.MapJsonKey(SpaceClaimTypes.UserName, "username");
        ClaimActions.MapJsonKey(SpaceClaimTypes.SmallAvatar, "smallAvatar");
        ClaimActions.MapJsonKey(SpaceClaimTypes.Avatar, "avatar");
        ClaimActions.MapJsonKey(SpaceClaimTypes.ProfilePicture, "profilePicture");
        ClaimActions.MapJsonSubKey(SpaceClaimTypes.FirstName, "name", "firstName");
        ClaimActions.MapJsonSubKey(SpaceClaimTypes.LastName, "name", "lastName");
        ClaimActions.MapCustomJson(ClaimTypes.Name, element =>
        {
            if (element.TryGetProperty("name", out var nameElement) && nameElement.ValueKind == JsonValueKind.Object)
            {
                return nameElement.TryGetProperty("firstName", out var firstName) &&
                       nameElement.TryGetProperty("lastName", out var lastName)
                    ? $"{firstName} {lastName}"
                    : null;
            }

            return null;
        });
        ClaimActions.MapCustomJson(ClaimTypes.Email, element =>
        {
            if (element.TryGetProperty("emails", out var emailElements) && emailElements.ValueKind == JsonValueKind.Array)
            {
                var emailElement = emailElements.EnumerateArray().FirstOrDefault();
                if (emailElement.TryGetProperty("email", out var email))
                {
                    return email.GetString();
                }
            }

            return null;
        });
    }