ASP.NET Core 8.0 Identity 친해지기
지난 글( ASP.NET Core 8.0 Identity 찍먹하기)에 이어서 이번에 조금 더 알아보는 시간을 갖도록 하겠습니다.
이번 글에서는 어떻게 Razor UI와 API 엔드포인트를 생성하는지, 그 내부 코드를 어떻게 확인할 수 있는지 알아보겠습니다.
Identity API 엔드포인트 생성 분석
어떻게 API 엔드포인트가 생성되는지 확인해보겠습니다.
SPA용 Web API 백 엔드를 보호하는 데 사용 Identity | Microsoft Learn
위 내용을 참고하여 ASP.NET Core 8.0 API 환경에서 Identity를 사용할 때, Program.cs 내에 아래와 같은 코드를 추가하게 됩니다.
var builder = WebApplication.CreateBuilder(args);
// ...
builder.Services.AddIdentityApiEndpoints<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
// ...
var app = builder.Build();
app.MapIdentityApi<IdentityUser>();
여기서 app.MapIdentityApi<IdentityUser>();는 직접적으로 Identity 관련 엔드포인트를 생성해주는 미들웨어입니다.
해당 메서드의 내부 코드를 확인해보면 IEndpointRouteBuilder에 대한 확장 메서드를 확인할 수 있습니다.
IdentityApiEndpointRouteBuilderExtensions.cs (dot.net)
IEndpointRouteBuilder는 API 엔드포인트를 구성하고 매핑하는데 사용되는 인터페이스입니다.
해당 인터페이스 문서에서 확장 메서드를 확인해봅시다.
IEndpointRouteBuilder 인터페이스 (Microsoft.AspNetCore.Routing) | Microsoft Learn
💡 IEndpointRouteBuilder는 API 엔드 포인트를 생성하는데 관여하는 인터페이스로, 컨트롤러 경로를 맵핑해주는 미들웨어인 app.MapControllers();에서도 동일하게 확인 가능합니다.
잘 찾아온 것 같습니다.
일부 코드를 접어보면 다음과 같이 API 엔드 포인트를 생성하는 코드를 확인할 수 있습니다.
만약, Identity API를 커스텀하고 싶을 경우, 위 확장 메서드를 별도의 다른 확장 메서드로 복사하여 커스텀하면 됩니다.
엔드 포인트 커스텀 예시
커스텀 클래스
// 커스텀 클래스
public static IEndpointConventionBuilder MapCustomIdentityApi<TUser>(this IEndpointRouteBuilder endpoints)
where TUser : class, new()
{
// Identity 코드 커스텀
}
program.cs
// ..
// 생략
var app = builder.Build();
//app.MapIdentityApi<IdentityUser>();
app.MapCustomIdentityApi<IdentityUser>(); // 커스텀 엔드포인트 생성
이전 시리즈 확인하기
ASP.NET Core Identity 찍먹하기 — 붓두껍 속 .NET (tistory.com)
ASP.NET Core Identity 찍먹하기
ASP.NET Core Identity 찍먹하기 사이드 프로젝트와 회사 일을 하면서 ASP.NET Core Identity를 사용해야 할 일이 생겨, 관련 내용을 정리하며 공부해보았습니다. 그 내용을 공유합니다. 개요 해당 글은 ASP.NE
dotnetboom.tistory.com