一旦我拥有access_token和refresh_token如何调用OAuth API

问题描述 投票:0回答:1

我真的很难完全理解 Oauth 的东西。 我的进程极其缓慢。

现在,我有

access_token
refresh_token
id_token
:

{
    "access_token":"SlAV32hkKG"
    "id_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
    "token_type":"Bearer",
    "refresh_token":"76c5cdeecfd1543cfd4c3e7c054780ac",
    "expires_in": 3600
}

接下来,我只需要使用上面的内容来进行最终的实际 API 调用。请相信我,我已经看过了,但我没有找到一个漂亮、简单、干净的代码示例来说明如何在 C# .NET 应用程序中进行此调用。

我尝试使用的 API 确实有自己的文档,这就是他们关于此步骤的全部内容:

4。发出 API 请求

现在您的应用程序有了有效的访问令牌,它现在可以使用它 向 PDK API 发出经过身份验证的请求的令牌。这是由 只需将访问令牌包含在承载类型授权中 您的请求的标头。授权标头应该看起来类似 至:

授权:不记名 eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...GMUDC2H13YMCwc30Z3l5RCrbwQ

从代码编写的角度来看,这没什么帮助。 他们是否说,当我进行最终(实际)API 调用时,我没有进行实际身份验证,而是将

access_token
作为普通标头包含在内?如果是,标头的名称(键)是什么?
Authorization: Bearer
它也是自己的标题吗?

这个帖子非常有帮助,但我仍然无法将他的示例转化为我想要做的事情。

因为这将是一个离线应用程序,所以我还需要以某种方式包含“resresh_token”。

我知道这里的协议是提供我们已经尝试过的代码,并询问如何修复它的建议。通常我就是这么做的。但老实说,我在这里迷路了。

c# .net oauth
1个回答
1
投票

您需要使用

access_token
设置授权标头。 这是一个例子:

var myUri = new Uri(fullpath);
var request = WebRequest.Create(myUri);
var httpRequest = (HttpWebRequest)request;
httpRequest.PreAuthenticate = true;
httpRequest.Headers.Add("Authorization", "Bearer " + access_token);
httpRequest.Accept = "application/json";

var webResponse = request.GetResponse();
var responseStream = webResponse.GetResponseStream();
if (responseStream == null) return null;
var reader = new StreamReader(responseStream, Encoding.Default);
var result = reader.ReadToEnd();
responseStream.Close();
webResponse.Close();
© www.soinside.com 2019 - 2024. All rights reserved.