【发布时间】:2020-10-05 14:30:58
【问题描述】:
我的 .NetCore 项目中有一个简单的控制器,它连接到请求授权码的第三方 API。
控制器在这里:
[HttpGet]
public IActionResult RequestAuth(string returnUrl = "/")
{
var token = HttpContext.GetTokenAsync("AuthAccessCode");
return Challenge(new AuthenticationProperties() { RedirectUri = returnUrl });
}
此控制器连接到第 3 方 API,然后该 API 将浏览器重定向到我指定的已定义 URL,并在查询字符串中附加授权代码,如下所示:
https://zod.es.able.edu/reports/EndPoint.htm?AuthCode=6932
现在,我需要阅读我使用 javascript 执行的 AuthCode。然后我需要对同一个 API 执行一个 POST 事件以获取一个非常长的安全令牌。
但是 3rd-party API 的制造商说它必须从我的服务器完成,而不是客户端浏览器端。如果我在客户端执行 POST 请求,就像在 Javascript 中一样,他们会拒绝该请求。请求必须来自我的后端 (c#) 服务器。
这就是我要挂断电话的地方。因为我知道如何在客户端使用 Ajax 或类似的东西。
但是服务器后端代码(c#)如何检索 AuthCode,然后向 API 发出 POST 请求?
我什至不知道从哪里开始?
有这样的库吗?
谢谢!
【问题讨论】:
-
从这里开始:HttpClientFactory docs.microsoft.com/en-us/dotnet/architecture/microservices/…
-
@insane_developer 谢谢!我通读了一遍,发现我可以使用 HttpMethod.Post 进行 POST。但是,它如何处理知道何时以及如何获取 AuthCode 查询字符串变量?现在,我正在使用 Javascript 来获取查询字符串,但需要它的是服务器,而不是客户端。谢谢!
标签: c# asp.net-core asp.net-core-mvc asp.net-core-3.1