我有ASP.NET Core Web API应用程序,该应用程序使用JWT进行身份验证。
该方法是基于令牌的身份验证API的标准方法。有资源可以按用户名/密码检索令牌。其他所有资源都需要在授权标头中传递令牌。这可以按预期工作。
现在,我需要编写一些Web UI应用程序(Razor Pages),它将使用我的Web API来实现其业务逻辑。我想重用身份验证方法:Web UI用户必须通过Web API进行身份验证。 PageModel
方法需要以某种方式选择令牌并将其传递给特定的Web API资源。
无需在Web UI中添加/删除/编辑用户-另一个Web应用程序(Angular)可以完成所有这些事情。
因此,顺序必须是这样的:
PageModel
方法。选择一个令牌,并将其传递给Web API。我查看了具有身份验证的Razor Pages应用程序模板,并且还阅读了文档中的"Identity"部分。我不知道如何将所有这些东西粘合在一起:docs样本主要基于实体框架(这是在我的Web API中完成的)。甚至customization部分仅描述了另一个用户存储。
我尝试注册自定义用户提供程序,角色提供程序和令牌提供程序,以了解其工作原理。看起来它想计算哈希,对其进行验证等-换句话说,就是执行API的工作。
如何实现上述认证方式? 有内置的技术吗?