Google+从Javascript登录- origin的参数值无效
Google+ Sign in from Javascript - Invalid Parameter value for origin
我一直在通过步骤添加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
或者试试下面的教程:
- $.Ajax投掷“;无效的参数"在IE9上
- 在 IE8 中接收无效参数
- fancydropdown js:IE8 中的参数无效
- 使用空媒体查询调用matchMedia失败,IE中的参数无效
- 单元测试输入参数无效的promise
- AngularJS IE11参数无效
- 数据表1.8.0添加服务器参数无效
- IE8 中的参数无效
- PHP foreach 提供的参数无效
- 管道“异步管道”的参数无效
- 使用 response.js 的参数无效,适用于 IE8
- SCRIPT87:IE 9、ASP.NET C#中的参数无效
- 数组缓冲区IE10-类型化的数组构造函数参数无效
- foreach参数无效
- 从url中删除参数无效
- 命令行参数无效,验证您正在使用的交换机
- chrome.runtime.sendMessage未捕获错误:要连接的参数无效
- IE中存在AJAX请求错误,参数无效
- 严重性:警告消息:为 foreach() 提供的参数无效 文件名:帮助程序/form_helper.php
- grant_type参数无效或缺少参数