elsa-core/src/modules/Elsa.Identity/Extensions/ModuleExtensions.cs

44 lines
1.5 KiB
C#
Raw Normal View History

2022-11-23 10:20:00 +00:00
using Elsa.Features.Services;
using Elsa.Identity.Features;
using Elsa.Identity.Options;
2022-11-23 10:20:00 +00:00
namespace Elsa.Identity.Extensions;
/// <summary>
/// Extensions for <see cref="IModule"/> that installs the <see cref="IdentityFeature"/> feature.
/// </summary>
public static class ModuleExtensions
{
/// <summary>
/// Installs & configures the <see cref="IdentityFeature"/> feature.
/// </summary>
public static IModule UseIdentity(this IModule module, Action<IdentityFeature> configure)
{
module.Configure(configure);
return module;
}
/// <summary>
/// Installs & configures the <see cref="IdentityFeature"/> feature.
/// </summary>
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;
}
/// <summary>
/// Installs & configures the <see cref="IdentityFeature"/> feature.
/// </summary>
public static IModule UseDefaultAuthentication(this IModule module, Action<DefaultAuthenticationFeature>? configure = default)
2022-11-23 10:20:00 +00:00
{
module.Configure(configure);
return module;
}
}