首页 > 解决方案 > 使用 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);

以前有没有人做过类似的事情,只是为了把我推向正确的方向?

标签: c#jwtasp.net-core-2.0refit

解决方案


推荐阅读