Google云端硬盘OAuth在浏览器上显示错误:redirect_uri_mismatch

时间:2016-02-04 01:47:37

标签: c# .net google-drive-api url-redirection

我正在尝试google drive api来做基本的上传/下载/列表文件。但我不知道如何通过身份验证。

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

我看过各种SO帖子,我尝试添加和javascript来源并在google开发者控制台中将{uri}重定向为http://localhosthttp://localhost/google_oauth2/callback。或者是网址应该是我的驱动网址吗?

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

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

1 个答案:

答案 0 :(得分:0)

Google documentation中,它指出,对于您的应用程序发送到Drive API的每个请求,您都必须包含授权令牌。该令牌还可识别您的Google应用程序。您可以在此link中找到授权流程的详细信息。

以下是管理授权的sample code

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

您还需要为应用指定开放网址,以及用户如何使用应用创建和打开文件的偏好设置。开放网址需要记住两件重要的事情:

  • 确保为开放网址提供完全合格的域名,localhost不起作用。
  • 网址必须属于您。 app registration完成后,您需要verify your ownership此网址才能创建Chrome网上应用店列表。

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