.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 中使用自定义消息设置状态代码?