谷歌云端硬盘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://localhost
或http://localhost/google_oauth2/callback
。还是网址应该是我的云端硬盘网址?
我对重定向 uri 有点困惑。AFAIU,此 oauth 代码将帮助我访问我的 Google 云端硬盘,因为我的电子邮件 ID 已使用此应用程序在开发控制台中注册并生成机密。所以我没有服务器,只有我的本地主机。
抱歉,如果这个问题很愚蠢,但我仍在学习身份验证机制。如果有人能纠正我,将会有很大帮助。
根据 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 应不同于应用的初始入口点。您可以在此处阅读文档。