c# - 使用 core 2 和 refit 构建一个纯服务器端的 rest 客户端
问题描述
我目前正在开发一个纯服务器端解决方案,以在 ASP.NET Core 2 中使用现有的 rest API,通过 JWT 令牌进行身份验证。
我有一个 Core 2 MVC 项目设置并包括改装以使用 api。
我理想中想要做的是 1. 使用 Refit HttpClientFactory 库发送请求以获取 api 上的 jwt 令牌和 2. 在所有后续 api 调用中包含令牌。
我正在研究这个,它与我想要做的非常相似,但它需要是一个基于核心 2 的解决方案。
我已经有了一个可行的解决方案,使用 refit 从 /api/login 获取 jwt 令牌并将其存储在会话变量中,但这感觉不是正确的做法。
var client = new RestClient("localhost:5000/api/login");
var request = new RestRequest(Method.POST);
request.AddJsonBody("User Model that I created");
request.AddHeader("Accept", "application/json");
request.RequestFormat = DataFormat.Json;
IRestResponse response = client.Execute(request);
//Store the response token in session
//Subsequent calls
var client = new RestClient("localhost:5000/api/values");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Bearer TOKEN_FROM_SESSION_STORAGE");
request.AddHeader("content-type", "application/json");
IRestResponse response = client.Execute(request);
以前有没有人做过类似的事情,只是为了把我推向正确的方向?
解决方案
推荐阅读
- flutter - 从 gridview 中选择多种颜色时需要更改 CircleBorder 颜色
- javascript - 是否有用于选择选项的 javascript 代码
- c# - 在 Xamarin Android 应用程序上的网络还原时出现“网络无法访问”错误
- join - 如何将一个表与另一个表连接,然后计算非空列并将它们按另外两个字段分组?
- azure - 数据流无法从源 .csv azure 捕获行更改
- python - Tensorflow 模型不进行多分类训练
- javascript - 如何提取文本值并将其分配给赛普拉斯范围之外的变量
- json - 如何处理来自在pytest中导入的Json的null
- c# - 在网站之间共享 cookie
- nginx - NGINX 将端点或 URL 限制为特定 IP