交换授权代码以进行刷新和访问令牌OAuth2

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

我正在尝试将在文档的this step中获得的授权代码交换为刷新和访问令牌。我遇到的问题是如何发送对Json的请求,该请求包含here中所述的访问和刷新令牌。

这是我的代码:

string paras = string.Format("code={0}&client_id={1}&client_secret={2}&grant_type={4}&redirect_uri={3}",
    AuthCode,
    ClientID,
    ClientSecret,
    "urn:ietf:wg:oauth:2.0:oob",
    "authorization_code"
);
var req = WebRequest.Create("https://www.googleapis.com/oauth2/v4/token/") as HttpWebRequest;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] data = Encoding.UTF8.GetBytes(paras);
req.ContentLength = data.Length;
using (Stream stream = req.GetRequestStream())
    stream.Write(data, 0, data.Length);
req.GetResponse();

[System.Net.WebException: 'The remote server returned an error: (400) Bad Request.'被抛出到req.GetResponse();

我的两个理论是我需要在开发人员控制台中添加重定向uri并使用它或添加代码验证程序。

我正在尝试将在文档的此步骤中获得的授权代码交换为刷新和访问令牌。我遇到的问题是如何发送对Json的请求,该请求包含访问权限和...

c# .net oauth-2.0 google-drive-api httpwebrequest
2个回答
1
投票

[向https://accounts.google.com/o/oauth2/v2/auth发出启动OAuth2流的请求并获得Auth Code(OAuth 2.0 Step 2)时,redirect_uri参数接受特殊的urn:ietf:wg:oauth:2.0:oob URI,以指定手动复制/粘贴获得的响应。] >

但是,在OAuth 2.0 Step 5(将身份验证代码交换为刷新和访问令牌)中,redirect_uri参数确实not


0
投票

redirect_uri必须与when the authorization code was requested相同。

© www.soinside.com 2019 - 2024. All rights reserved.