using Elsa.Features.Services; using Elsa.Identity.Features; using Elsa.Identity.Options; namespace Elsa.Identity.Extensions; /// /// Extensions for that installs the feature. /// public static class ModuleExtensions { /// /// Installs & configures the feature. /// public static IModule UseIdentity(this IModule module, Action configure) { module.Configure(configure); return module; } /// /// Installs & configures the feature. /// public static IModule UseIdentity(this IModule module, string signingKey, string issuer = "http://elsa.api", string audience = "http://elsa.api", TimeSpan? tokenLifetime = default) { module.UseIdentity(identity => identity.IdentityOptions = new IdentityOptions { Audience = audience, Issuer = issuer, Lifetime = tokenLifetime ?? TimeSpan.FromHours(1), SigningKey = signingKey }); return module; } /// /// Installs & configures the feature. /// public static IModule UseDefaultAuthentication(this IModule module, Action? configure = default) { module.Configure(configure); return module; } }