【问题标题】:Google Drive OAuth giving Error: redirect_uri_mismatch on browserGoogle Drive OAuth 给出错误:浏览器上的 redirect_uri_mismatch
【发布时间】:2016-02-04 01:47:36
【问题描述】:

我正在尝试使用 google drive api 来执行基本的上传/下载/列出文件。但我不确定如何通过身份验证。

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

我看过各种 SO 帖子,我尝试在 google 开发控制台中添加 javascript 源和重定向 uri,如 http://localhosthttp://localhost/google_oauth2/callback。还是该 url 应该是我的驱动器 url?

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

对不起,如果这个问题很愚蠢,但我仍在学习身份验证机制。如果有人可以纠正我,那将是很大的帮助。

【问题讨论】:

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


    【解决方案1】:

    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);
                    }
    

    您还需要为您的应用指定打开 URL,以及您对用户如何使用该应用创建和打开文件的偏好。开放 URL 有两点需要牢记:

    • 确保为 Open URL 提供完全限定的域名,localhost 不起作用。
    • 该 URL 必须属于您。在app registration 完成后,您将需要verify your ownership 此 URL 才能创建 Chrome 网上应用店列表。

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

    【讨论】:

    • 感谢您的回复。当您说完全合格时, ipaddress 会起作用吗?还是我必须创建一个 html 页面并将其用作重定向地址?此外,我在控制台上选择了 Web 应用程序而不是安装的应用程序。我能够运行控制台应用程序。
    猜你喜欢
    • 1970-01-01
    • 2021-07-20
    • 2014-02-09
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 2019-07-14
    • 2021-06-14
    相关资源
    最近更新 更多