谷歌云端硬盘OAuth给出错误:浏览器redirect_uri_mismatch

本文关键字:redirect 浏览器 uri mismatch 错误 硬盘 云端 OAuth 出错 谷歌 | 更新日期: 2023-09-27 18:33:04

我正在尝试谷歌驱动器API来做基本的上传/下载/列出文件。但我不确定如何通过身份验证。

UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets{ClientId = clientId, ClientSecret = clientSecret},                                                                                                  
                                                                                                , scopes
                                                                                                , userName
                                                                                                , CancellationToken.None
                                                                                                , new FileDataStore("Drive.Auth.Store")).Result;

我看过各种SO帖子,我尝试在谷歌开发控制台中添加和javascript起源和重定向uri作为http://localhosthttp://localhost/google_oauth2/callback。还是网址应该是我的云端硬盘网址?

我对重定向 uri 有点困惑。AFAIU,此 oauth 代码将帮助我访问我的 Google 云端硬盘,因为我的电子邮件 ID 已使用此应用程序在开发控制台中注册并生成机密。所以我没有服务器,只有我的本地主机。

抱歉,如果这个问题很愚蠢,但我仍在学习身份验证机制。如果有人能纠正我,将会有很大帮助。

谷歌云端硬盘OAuth给出错误:浏览器redirect_uri_mismatch

根据 Google 文档,它指出,对于您的应用向云端硬盘 API 发送的每个请求,您都必须包含一个授权令牌。该令牌还会向 Google 标识您的应用程序。您可以在此链接中找到授权过程的详细信息。

下面是管理授权的示例代码。

UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                        GoogleClientSecrets.Load(stream).Secrets,
                        Scopes,
                        "user",
                        CancellationToken.None,
                        new FileDataStore(credPath, true)).Result;
                    Console.WriteLine("Credential file saved to: " + credPath);
                }

您还需要指定应用的"打开 URL",以及有关用户如何使用应用创建和打开文件的首选项。对于打开 URL,有两件重要的事情需要记住:

  • 请确保为 Open URL 提供完全限定的域名,localhost不起作用。
  • 网址必须属于您。应用注册完成后,您需要验证您对此网址的所有权,才能创建 Chrome 网上应用店一览。

关于重定向 URI,它是应用的回调入口点。请求中指定的重定向 URI 确定如何将授权代码返回到应用程序。例如,最终用户接受权限后,必须调用"重定向 URI"才能返回到应用。此外,重定向 URI 应不同于应用的初始入口点。您可以在此处阅读文档。