实施一次性代码流程时的Google登录问题

时间:2018-08-01 10:24:43

标签: .net .net-core google-signin asp.net-core-webapi googlesigninapi

我有一个.net核心Web API项目,该项目利用oAuth 2.0来使用Google登录。 遵循与https://developers.google.com/identity/sign-in/web/server-side-flow

相同的代码

代码段:

var requestUrl = $"oauth2/v4/token?code={code.code}&client_id={ClientId}&client_secret={SecretKey}&redirect_uri={RedirectUrl}&grant_type=authorization_code";

var dict = new Dictionary<string, string>
{
    { "Content-Type", "application/x-www-form-urlencoded" }
};

var req = new HttpRequestMessage(HttpMethod.Post, requestUrl) { Content = new FormUrlEncodedContent(dict) };
var httpResponse = await httpClient.SendAsync(req);
var token = JsonConvert.DeserializeObject<GmailToken>(await httpResponse.Content.ReadAsStringAsync());
var obj = await GetuserProfile(token.AccessToken);

响应: Http状态400

{
  "error": "redirect_uri_mismatch",
  "error_description": "Bad Request"
}

我在开发人员控制台上有正确的URL,并且已在代码中传递了一个URL。

1 个答案:

答案 0 :(得分:0)

https://console.developers.google.com/apis/credentials>“ OAuth 2.0客户端ID”下配置的重定向URL与<{> 1}参数的值完全不完全匹配时,您将收到此错误消息。 br /> 这包括尾随{RedirectUrl}