授权错误 Error 400: redirect_uri_mismatch on C#

Authorization Error Error 400: redirect_uri_mismatch on C#

我想在 ASP.NET MVC C# 中使用 Google 驱动器 API 将文件上传到 Google 驱动器。 在这样做的同时,我遵循了以下 URL: https://qawithexperts.com/article/asp-net/upload-file-to-google-drive-using-google-drive-api-in-aspnet/236

在调用我的 API google 重定向到显示

的错误页面后执行代码
Error 400: redirect_uri_mismatch 

我想澄清一下,我在项目属性中提到了 right/correct URL 请查看我的问题。

我附上包含 redirect_uri 的屏幕截图。

重定向 uri 必须与您在 Google 开发者控制台中注册的完全匹配

如果我们查看您的图片,您注册了以下两个重定向 uri

  • http://localhost:60581/
  • http://localhost:60581/api/TwilioWP/CallGoogleAPI

这意味着 Google 将只接受来自您的应用程序的那两个重定向 uri。测试是完全匹配。

现在,如果我们查看错误消息,我们可以看到您的应用程序正在发送

如您所见,这与您注册的不匹配。你应该做的是复制那个并添加它。

请注意,如果您的 ide 正在更改端口,您需要将其设置为静态端口,否则它将无法工作。它需要完全匹配

Google OAuth2: How the fix redirect_uri_mismatch error. Part 2 server sided web applications

你真正的问题。

您正在学习的教程使用 GoogleWebAuthorizationBroker.AuthorizeAsync 此方法专为与已安装的应用程序一起使用而设计。所以实际上您使用的凭据和客户端类型是错误的。如果您想使用该代码,您需要创建本机或桌面客户端。

如果您尝试按原样托管它,它将尝试在服务器上打开 Web 浏览器。当您需要做的是在用户机器上打开网络浏览器以获得用户同意。如果您希望能够授权用户使用您的网络应用程序,您应该遵循 web-applications-asp.net-core-3

我向您提供关于 Asp .net core 3 and Google login 的教程,其中有一个 link 到 YouTube video 关于同一主题。

所以您问题的真正原因是您正在使用已安装应用程序的代码,该应用程序的默认重定向 URI 为 http://127.0.0.1:{Port}/authorize/,并且您正试图将其用于 Web 应用程序。这需要将主机设置为您的 Web 域的主机。

我已经与您正在关注的教程的作者取得了联系。我怀疑他们很快就会解决这个问题。 Twitter thread