Google+从Javascript登录- origin的参数值无效

Google+ Sign in from Javascript - Invalid Parameter value for origin

本文关键字:参数 无效 origin Javascript 登录 Google+      更新时间:2023-09-26

我一直在通过步骤添加Google+登录到我的web应用程序,如https://developers.google.com/+/web/signin/

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

然而,当我点击Google+登录按钮从我的页面在PhoneGap,起源被发送为文件://导致以下错误消息:

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

我去了Google API控制台,并试图将file://指定为授权的Javascript源。但是,当然,它不允许将file://作为起始点输入。

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

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

然而,你可以使用In-App Browser插件和window.open,这将允许在应用程序内启动一个"标准"的客户端流。然后监听打开的窗口上的事件来处理响应。

这个插件是跨平台的,所以你不需要维护多个本地实现。

ng-cordova-oauth库为AngularJS实现了这个功能。

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

对于file://,事情是不同的。试试这个作为你的原点:http://localhost:4567 或者试试下面的教程: