feat: JWT 토큰 기반 Admin 로그인 인증 완성

- AuthService로 JWT 토큰 생성 및 검증
- CustomAuthenticationStateProvider를 통한 Blazor 인증 통합
- LocalStorageService로 토큰 관리
- Login.razor 완전 재작성 (실제 DB 검증, 토큰 발급)
- BCrypt 기반 비밀번호 검증
- admin/admin123으로 테스트 가능

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-06-26 22:00:16 +09:00
parent b2c8b35cdd
commit a039bb53a4
10 changed files with 274 additions and 34 deletions
+7 -7
View File
@@ -1,18 +1,18 @@
using System.Text.Encodings.Web;
using System.Text.Unicode;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Components.Authorization;
using MudBlazor.Services;
using TaxBaik.Admin.Services;
using TaxBaik.Application;
using TaxBaik.Infrastructure;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(opts => {
opts.LoginPath = "/login";
opts.ExpireTimeSpan = TimeSpan.FromHours(8);
opts.Cookie.SameSite = SameSiteMode.Lax;
});
builder.Services.AddScoped<AuthService>();
builder.Services.AddScoped<CustomAuthenticationStateProvider>();
builder.Services.AddScoped<AuthenticationStateProvider>(sp => sp.GetRequiredService<CustomAuthenticationStateProvider>());
builder.Services.AddScoped<ILocalStorageService, LocalStorageService>();
builder.Services.AddCascadingAuthenticationState();
builder.Services.AddAuthorizationCore();
builder.Services.AddRazorComponents()