代码之家  ›  专栏  ›  技术社区  ›  hkjhadj1

使用jwt在.net core 2.1wepapi中进行身份验证和授权

  •  2
  • hkjhadj1  · 技术社区  · 6 年前

    我正试图在我的核心2.1 webapi中实现jwt auth。我仍在学习Core2.1,以前也曾与MVC5合作过。我的问题是在MVC5中, AccountController 与所有控制器一起自动生成,以处理完整的用户身份验证和授权过程。现在,当我试图为我的Core2.1API实现同样的功能时,我意识到它们不再是自动生成的。我到处找了很多资源来教你如何实现这个功能,但是,我记得每个人都会说 不要重新发明授权/身份验证控制盘 并使用MVC5提供的自动生成代码。现在我可以按照教程进行操作,自己实现这个过程,但几乎每个人都是自己实现的。这是正确的做法吗?我不想通过遵循这些教程来实现,最终会在我的api中出现安全漏洞。

    1 回复  |  直到 6 年前
        1
  •  1
  •   greygreg87    6 年前

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

    一般来说,web api应该是纯api link 是的。但是,当您:

    1)在数据库上下文中派生窗体identitydbcontext:

    public class DatabaseContext : IdentityDbContext<ApplicationUser>
    

    其中applicationuser是从identityuser派生的您自己的类:

    public class ApplicationUser : IdentityUser
    

    2)执行迁移,ef core将为您生成所需的所有表

    接下来,必须在startup类中设置jwt authorize,并在accountcontroller中创建方法以生成令牌。非常有用的视频 link

    这是你问题的答案吗?或者我错过了什么。我对.net很陌生