9

我已经完成了将 Google+ 登录添加到我的网络应用程序的步骤,如https://developers.google.com/+/web/signin/中所示

在“典型”网站中使用时,“客户端”流程工作得很好。现在,我正在尝试将这个 Google+ 标志集成到 PhoneGap 中。由于 PhoneGap 将网页作为 file:// URL 运行,因此在请求中发送的来源是 file://。在我编写的所有其他 PhoneGap 中,这都不是问题。

但是,当我在 PhoneGap 的页面中单击 Google+ 登录按钮时,作为 file:// 发送的源会导致以下错误消息:

错误:invalid_request
来源的无效参数值:缺少权限:file://

我去了 Google API 控制台并尝试将 file:// 分配为授权的 Javascript 源。但是,当然,它不允许将 file:// 作为来源输入。

所以我想知道是否有人对如何从PhoneGap(或从没有服务器的本地网页 - 只是作为文件运行的页面)执行这种网络风格(Javascript)Google+登录有任何见解://)。我真的不想在本机代码中进行登录,然后将令牌集成回“PhoneGap”领域,因为这违背了为多个平台编写一次应用程序的目的。

4

2 回答 2

2

我的理解是,您不能将标准客户端流程与 Cordova/PhoneGap 一起使用,因为file://它不是有效的来源。

但是,您可以将In-App Browser 插件与 一起使用window.open,这将允许从应用程序内部启动“标准”客户端流程。然后,您在打开的窗口上收听事件以处理响应。

该插件跨平台工作,因此您不必维护多个本机实现。

ng-cordova-oauth库为 AngularJS 实现了这一点。

有关实现的更多详细信息,请参阅本教程了解详细信息,以及Google OAuth 文档

于 2015-04-29T15:40:20.710 回答
0

对于 file://,事情的工作方式不同.. 试试这个作为你的起源:http://localhost:4567 或试试这个教程:这里

于 2014-04-26T20:58:50.337 回答