- Flatten nested per-repo folders into flat Musify.* projects at root - Rename assemblies/csproj: Domain->Musify.Domain, Application->Musify.Application, Infrastructure->Musify.Infrastructure, WebApi->Musify.Api, Worker->Musify.Worker, StreamingGateway->Musify.StreamingGateway - Rename WebApi.* namespaces to Musify.Api.* - Update all ProjectReference paths and the solution file - Consolidate stray per-repo dotfiles; add root .gitattributes - Move flutter client out to _archive Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
32 lines
1005 B
C#
32 lines
1005 B
C#
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace Musify.Api.Authentication;
|
|
|
|
public static class AuthenticationExtensions
|
|
{
|
|
public static IServiceCollection AddAuthenticationConfiguration(
|
|
this IServiceCollection services,
|
|
IConfiguration configuration)
|
|
{
|
|
services
|
|
.AddOptionsWithValidateOnStart<AuthenticationConfiguration>()
|
|
.Bind(configuration.GetRequiredSection(AuthenticationConfiguration.SectionName))
|
|
.ValidateDataAnnotations();
|
|
|
|
services.AddSingleton(serviceProvider =>
|
|
serviceProvider.GetRequiredService<IOptions<AuthenticationConfiguration>>().Value);
|
|
|
|
services.AddScoped<JwtBearerEventsHandler>();
|
|
services.ConfigureOptions<JwtBearerOptionsSetup>();
|
|
|
|
services
|
|
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
|
.AddJwtBearer();
|
|
|
|
services.AddAuthorization();
|
|
|
|
return services;
|
|
}
|
|
}
|