Использование Identity.UI в проекте WebAPI - PullRequest
0 голосов
/ 29 сентября 2019

Я довольно новичок в Asp.NET и хотел бы получить дополнительную информацию о том, что делать дальше. У меня есть стандартный проект WebAPI, который содержит стандартный шаблон погоды - я пытаюсь применить некоторую аутентификацию через регистрацию / вход в систему. Я знаю, что есть способ сделать шаблон для вас при создании проекта, но для веб-API это не 'я не могу позволить вам создать локальную базу данных.

Итак, сейчас я прикрепил пакет Identity.UI, чтобы дать мне доступ к этому методу и сгенерировать миграцию для таблиц идентификаторов

 services.AddDefaultIdentity<IdentityUser>()
   .AddEntityFrameworkStores<ApplicationDbContext>();

, который позволяет мне использовать UserManager для регистрации пользователя и для входа в систему я делаю это:

    if (!ModelState.IsValid) return BadRequest();

    var result = await m_userManager.FindByNameAsync(user.Email);
    var correct = await m_userManager.CheckPasswordAsync(result, user.Password);

    if (!correct) return BadRequest();

    return Ok(new { token = m_tokenService.BuildToken(user.Email) });

Мой вопрос - это правильный способ обработки регистрации и входа в систему через WebAPI, потому что Microsoft.AspNetCore.Identity. Пакет пользовательского интерфейса, как следует из названия, предоставляет бритвенные страницы для входа в систему / регистрации, в которых я на самом деле не нуждаюсь, что заставляет меня поверить, что это неправильно. Есть ли у этого недостаток / проблема, или это более чистый способ сделать это?

1 Ответ

0 голосов
/ 30 сентября 2019

Стандартный пакет Microsoft.AspNetCore.Identity.UI предоставляет страницу бритвы для входа в систему / регистрации, которая кажется избыточной для веб-API.

Чтобы реализовать идентификацию Microsoft на веб-интерфейсе API для обработки учетных записей отдельных пользователей, вы можете попробовать использовать токены JWT, воспользуйтесь следующими ссылками, которые являются хорошими учебными пособиями по использованию аутентификации JwtBearer в проекте ASP.NET Core API:

https://wildermuth.com/2018/04/10/Using-JwtBearer-Authentication-in-an-API-only-ASP-NET-Core-Project

https://dotnetdetail.net/asp-net-core-3-0-web-api-token-based-authentication-example-using-jwt-in-vs2019/

...