.Net Core 2.1 WepAPI 中使用 JWT 的身份验证和授权

Posted

技术标签:

【中文标题】.Net Core 2.1 WepAPI 中使用 JWT 的身份验证和授权【英文标题】:Authentication & Authorization in .Net Core 2.1 WepAPI using JWT 【发布时间】:2018-12-20 13:05:31 【问题描述】:

我正在尝试在我的 Core 2.1 webAPI 中实现 JWT Auth。我仍在学习 Core 2.1,并且之前使用过 MVC5。我的问题是,在 MVC5 中,AccountController 是与所有控制器一起自动生成的,以处理完整的用户身份验证和授权过程。现在,当我尝试为我的 Core 2.1 API 实现相同的东西时,我意识到它们不再是自动生成的。我已经四处搜索,并且有很多资源正在教如何实现该功能,但我记得每个人都会说不要重新发明授权/身份验证轮并使用由提供的自动生成代码MVC5。现在我可以按照那里的教程并自己实现这个过程,但几乎每个人似乎都在做自己的实现。这是这样做的正确方法吗?我不想按照这些教程来实施,最终导致我的 API 出现安全漏洞。

【问题讨论】:

【参考方案1】:

我在同样的问题上苦苦挣扎。我不知道这是否是支持身份验证/授权的好方法,但我找到了解决方案。

一般web api应该是纯apilink。但是,当您:

1) 在DatabaseContext中派生出形式IdentityDbContext:

public class DatabaseContext : IdentityDbContext<ApplicationUser>

其中 ApplicationUser 是您自己的类,它派生自 IdentityUser:

public class ApplicationUser : IdentityUser

2) 进行迁移,EF Core 将为您生成您需要的所有表

接下来,您必须在 Startup 类中设置 JWT 授权,并在 AccountController 中创建方法以生成令牌。非常有帮助的视频link

它回答了你的问题吗?或者我错过了什么。我是 .NET 的新手

【讨论】:

以上是关于.Net Core 2.1 WepAPI 中使用 JWT 的身份验证和授权的主要内容,如果未能解决你的问题,请参考以下文章

在 .NET Core 3.1 中添加窗口身份验证后出现 Cors 错误

如何在 asp.net core 2.1 中使用 net.tcp 服务

ASP.Net WepAPI - 我可以从 Get Methods 获得结果,但我不能发布

如何在 asp.net core 2.1 中使用自定义消息设置状态代码?

学习 ASP.NET Core 2.1:集成测试中使用 WebApplicationFactory

ASP.NET Core 2.1 在视图中使用 HttpContext