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

时间:2018-07-12 10:28:43

标签: authentication authorization asp.net-identity jwt asp.net-core-2.1

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

1 个答案:

答案 0 :(得分:1)

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

通常,Web api应该是纯api link。但是当您:

1)在DatabaseContext中派生IdentityIbContext形式:

public class DatabaseContext : IdentityDbContext<ApplicationUser>

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

public class ApplicationUser : IdentityUser

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

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

它在回答您的问题吗?或者我错过了一些东西。我在.NET中很新