【发布时间】:2018-08-15 01:54:08
【问题描述】:
我有一个受 JWT 保护的核心 Web API,该服务由 WPF 应用程序通过HttpClient 使用。这一切都很好,因为一旦我有了一个令牌,我就会在每个请求的标头中传递它。
现在我需要构建一个使用 API 的某些功能的 MVC Core Web 应用程序。为了避免 CORS 问题,我想将 API 控制器导入 Web 应用程序。但是,我不想混合使用 cookie 和 JWT 身份验证。
通常在 WPF 应用程序中,为了登录,我向我的 API 的 Token 控制器发出请求,获取令牌并使用它来授权后续请求。现在我可以在主 MVC 应用程序中构建一个登录页面,该页面使用 HttpClient 调用我的 Token 控制器并获取 JWT,但是我如何使用该令牌来授权主 MVC 应用程序中的所有其他操作。必须使用HttpClient 来传递 JWT 标头以进行内部调用似乎也很笨拙。
有没有一种方法可以让我从一开始就使用 JWT 来保护我的 MVC 应用程序,而无需使用 HttpClient。也就是说,一旦我有了我的令牌,并且所有操作都由令牌保护,我如何存储该令牌并将其传递给主 MVC 应用程序的所有其他请求?
【问题讨论】:
-
我需要类似的东西,我最终将 JWT 直接存储在 cookie 中。 API.Token 和 Account.Login 操作生成相同的 JWT,因此我可以使用相同的技术保护 API 方法和 Web 操作。
标签: asp.net-mvc asp.net-core asp.net-core-mvc jwt