首页 文章

将JWT Bearer认证Web API与Asp.Net Core 2.0相结合的问题

提问于
浏览
1

我有以下设置:

使用JWT Bearer Auth的Web API

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

AngularJS - 客户端

Angular正在请求JWT令牌并将其传递给后续的http请求 . AJAX调用工作正常 . 问题是如果我通过我的浏览器通过[授权]请求MVC操作,那么该令牌显然没有被验证,因为没有cookie和没有auth头 .

我将如何实现对非Ajax请求的登录功能?

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

我知道这可能可以通过迁移到SPA来解决,但我想知道是否有办法保持今天的解决方案与MVC服务视图 - 旧习惯:(

1 回答

  • 0

    如果您需要服务器端JWT身份验证,则需要将JWT存储在cookie而不是本地存储中 . Cookie是针对您网站的域名发布的,因此当您向MVC应用程序请求视图并假设您的API和MVC站点具有相同的来源(相同的架构主机端口)时,受保护的MVC控制器应该没有问题来处理传入的cookie在HTTP(S)请求中并决定如何响应 . WebAPI还应该能够处理具有JWT有效负载的cookie . 我在这里找到了关于ASP.NET Core MVC身份验证的示例项目的好文章:https://auth0.com/blog/asp-dot-net-core-authentication-tutorial/对于你的AngularJS SPA,它不应该太长,因为cookie有效载荷大小有限 . 更多关于它:https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage

相关问题