在 WebAPI 项目中使用 Identity.UI

Using Identity.UI in WebAPI project

我是 Asp.NET 的新手,想了解更多关于如何进行的信息。我有一个包含标准天气模板的标准 WebAPI 项目 - 我正在尝试通过 registering/logging 应用一些身份验证。我知道有一种方法可以让模板在创建项目时为您完成,但对于网络 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.UI 包为 login/registering 提供了我并不真正需要的剃刀页面这让我相信这是不正确的。是否有 downside/problem 这样做,或者这是一种更简洁的方法。

默认的 Microsoft.AspNetCore.Identity.UI 软件包为 login/registration 提供了一个 razor 页面,这对于网络 api 来说似乎是多余的。

为了在网络上实施 Microsoft 身份 api 来处理基本的个人用户帐户,您可以尝试使用 JWT 令牌,请参阅以下链接,这些链接是关于在 ASP.NET 核心 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/