将JWT Bearer身份验证Web API与Asp.Net Core 2.0结合在一起时出现问题

金·拉内斯(Kim Raaness)

我有以下设置:

具有JWT Bearer Auth的Web API

Asp.Net Core 2.0 MVC处理身份并提供视图

AngularJS-客户端

Angular正在请求JWT令牌,并将其传递给后续的HTTP请求。AJAX调用工作正常。问题是,如果我通过浏览器请求使用[Authorize]进行MVC操作,则该令牌显然未得到验证,因为没有cookie和auth标头。

我将如何对非ajax请求实施登录功能?

我假设我需要实现某种Cookie身份验证,但是我希望在转移到JWT后避免使用它。

我知道可以通过迁移到SPA来解决此问题,但是我想知道是否可以通过MVC服务视图来保留当今的解决方案-旧习惯:(

双心

如果要进行服务器端JWT身份验证,则需要将JWT存储在cookie中,而不是本地存储中。Cookies是针对您的站点的域发布的,因此,当您请求您的MVC应用程序进行查看并假设您的API和MVC站点具有相同的来源(相同的架构+主机+端口)时,受保护的MVC控制器应该没有问题可以处理HTTP(S)请求中的传入cookie,并决定如何响应。WebAPI还应该能够处理具有JWT有效负载的cookie。我在这里找到了有关ASP.NET Core MVC身份验证的示例项目的不错的文章:https : //auth0.com/blog/asp-dot-net-core-authentication-tutorial/对于您的AngularJS SPA,将JWT设置为cookie而不是将其放入本地存储应该不是问题。实际上,这是存储JWT的更安全的方法,但是您需要确保您的JWT不会太长,因为cookie有效负载大小是有限的。有关更多信息,请访问:https : //stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在将JWT身份验证添加到ASP.NET Core 2.1 Web API时,是否需要创建诸如AspNetUsers之类的表?

将JWT身份验证实现从.net核心2传输到asp.net Web API 2

ASP.NET Core Web API Facebook JWT身份验证

响应 JWT 错误的身份验证 Asp.Net Core Web Api

使用 ASP.NET Core Web API 的 Facebook JWT 身份验证

.Net Core Web API的Auth0身份验证

如何在ASP.NET Core 2中对Facebook Web API进行身份验证

ASP.NET Core Web API + Angular 2授权和身份验证

使用JWT的.Net Core 2.0 Web API-添加身份会破坏JWT身份验证

ASP Net Core-将外部身份提供者与单个用户帐户混合在一起以进行审计跟踪

ASP.NET Core Web API身份验证

Google身份验证ASP.NET Core Web Api

ASP.NET Web API的JWT身份验证

在测试过程中跳过JWT身份验证ASP.Net Core 3.1 Web Api

在.NET Core Web API中使用自定义属性进行JWT身份验证

ASP NET Core JWT身份验证允许过期的令牌

使用承载令牌身份验证时设置asp.net CORE 2身份验证Cookie

ASP .NET Core Identity默认身份验证与JWT身份验证

Cookie 身份验证与 JWT 身份验证 ASP.NET CORE 无法正常工作

ASP.Net Core 2 身份验证将 cookie 写入本地主机不同的端口

使用ADFS的JWT承载身份验证将ASP.NET Framework迁移到ASP.NET Core 3.1

ASP.NET Core 2身份验证方案

ASP.NET Core 5 Web API 在用户未经身份验证时返回 404 代码而不是 401

如何将ASP.NET网页站点与MVC 6站点结合在一起

在Asp.Net Core Web Api中验证B2C JWT令牌

将Windows身份验证与带有ASP.NET Core的Azure Service Fabric一起使用

一个将身份验证令牌存储在ASP.Net Core中的位置

尝试将 JWT 用于 ASP NET Owin 身份验证时出错?

.NET Core的Firebase身份验证(JWT)