Blazor Web App - Register and Login (Identity Server)
2023. 12. 18. 00:00ㆍASPNET/Blazor
반응형
.NET 8 web api 에서 identity 기능을 활성화 하여 Identity Server 만들기
기본 web api 를 생성 하고 다음 package 를 설치 합니다.
dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.InMemory
MyUser 라는 자체 user class 를 위해서 IdentityUser 에서 상속 받습니다.
class MyUser : IdentityUser {}
그리고 XXXDbContext 도 다음과 같이 상속 받습니다.
class ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) :
IdentityDbContext<MyUser>(options)
{
}
Program.cs
builder.Services.AddAuthorization();
builder.Services.AddDbContext<ApplicationDbContext>(
options => options.UseInMemoryDatabase("AppDb"));
builder.Services.AddIdentityApiEndpoints<MyUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
...
...
.WithName("GetWeatherForecast")
.WithOpenApi()
.RequireAuthorization();
app.MapIdentityApi<MyUser>();
자 이형태로 swagger 에서 테스트 가능하다
그런데 login 시 옵션중에 cookies 를 false 로 할 수 있다.
이렇게 되면 token 형태로 인증 및 인가 처리가 가능하다.
swagger 에서 테스트 하기 위해서는 약간의 추가 코드가 필요하다.
builder.Services.AddSwaggerGen(opt =>
{
//opt.SwaggerDoc("v1", new OpenApiInfo { Title = "MyAPI", Version = "v1" });
opt.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
In = ParameterLocation.Header,
Description = "Please enter token",
Name = "Authorization",
Type = SecuritySchemeType.Http,
BearerFormat = "JWT",
Scheme = "Bearer"
});
opt.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type=ReferenceType.SecurityScheme,
Id="Bearer"
}
},
new string[]{}
}
});
});
위와 같이 추가 한 후 오른쪽 상단에 표시되는 자물쇠 를 클릭하고 login 으로 만든 token 을 입력해주면 된다.
(따옴표 제외하고 복사해주길 바랍니다.!!)
관련영상
반응형
'ASPNET > Blazor' 카테고리의 다른 글
| Blazor web app 렌더링 간 data 공유 (1) | 2024.02.19 |
|---|---|
| Blazor Web App - 렌더링 개념 (1) | 2023.12.11 |
| Blazor web app 이란 무엇인가? (dotnet 8) (1) | 2023.12.04 |
| 이벤트 처리 2 (0) | 2022.05.06 |
| 이벤트 처리 (0) | 2022.05.05 |