使用 Razor 时如何在每个请求处传输 JWT 令牌(.NET CORE 2.2 MVC)
Posted
技术标签:
【中文标题】使用 Razor 时如何在每个请求处传输 JWT 令牌(.NET CORE 2.2 MVC)【英文标题】:How to transfer a JWT token at each requesto when using Razor (.NET CORE 2.2 MVC) 【发布时间】:2019-08-08 05:51:16 【问题描述】:我想对 .net core MVC 项目使用 JWT 授权。我找到了许多关于如何在用户登录时返回 JWT 令牌的示例。 但是,只有少数几个示例说明如何在每个请求的标头中传输令牌。
我找到了 AJAX 示例:
$.ajaxSetup( 标头:“授权”:“承载”+ accessToken);
Simple Authentication using Jwt in dot net core MVC
How to use JWT in MVC application for authentication and authorization?
这是传输 JWT 令牌的正确方法吗? 我总是必须使用 AJAX 吗?
【问题讨论】:
【参考方案1】:没有 JWT 授权之类的东西。
JWT 令牌只是分发签名声明集的一种格式。
传递令牌的正确方式取决于许多因素,例如您在 oauth 流中的位置、传输是否加密、令牌是否包含个人信息,以及您的前端是否是 spa、本地等
【讨论】:
我下载了一个项目:codeproject.com/Articles/1203978/…【参考方案2】:链接中的代码示例使用 Ajax 访问受保护的资源/api。您还可以在标头中传递不记名令牌以在服务器端进行 api 调用:
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "APIurl");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "YourAccessToken");
HttpResponseMessage response = await client.SendAsync(request);
if (response.IsSuccessStatusCode)
String responseString = await response.Content.ReadAsStringAsync();
...
【讨论】:
以上是关于使用 Razor 时如何在每个请求处传输 JWT 令牌(.NET CORE 2.2 MVC)的主要内容,如果未能解决你的问题,请参考以下文章
使用过期令牌发出同时 API 请求时如何避免多个令牌刷新请求
如何在 CodeIgniter 3.x 中为来自客户端的每个请求验证 JWT 令牌