【问题标题】:Authorization Error Error 400: redirect_uri_mismatch on C#授权错误错误 400:C# 上的 redirect_uri_mismatch
【发布时间】:2022-03-11 18:28:19
【问题描述】:

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

在调用我的 API 后实现代码时,谷歌重定向到显示的错误页面

Error 400: redirect_uri_mismatch 

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

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

【问题讨论】:

  • 您需要使用 HTTPS。 HTTP 不起作用。以前是这样,但现在不是了。
  • 你看到你链接的页面实际上有一个关于这个的链接吗?它重定向here。可能是您应该省略端口号。
  • @JHBonarius 可能,但他们目前正在遵循的教程存在更大的问题。它不是为 Web 应用程序或 asp.net 设计的。它是为已安装的应用程序设计的,因此如果他们想使用创建本机或桌面客户端所需的代码,他们使用的凭据是错误的。

标签: c# asp.net google-drive-api google-oauth google-api-dotnet-client


【解决方案1】:

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

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

  • 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 浏览器以征得用户同意时。如果您希望能够授权使用您的网络应用程序的用户,您应该关注web-applications-asp.net-core-3

我在 Asp .net core 3 and Google login 上为您提供我的教程,其中包含指向同一主题的 YouTube 视频的链接。

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

我已与您所关注的教程的作者保持联系。我怀疑他们很快就会解决这个问题。 Twitter thread

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-23
    • 2021-10-14
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 2013-07-31
    相关资源
    最近更新 更多