1

有没有人有幸在 Google Chrome 扩展程序和 Google App 引擎之间获得 OAuth 以正常运行(或者其他任何事情?)。我已经完成了所有步骤。我已经完成了这个谷歌开发教程about:blank中的步骤,不管我在握手过程结束时被重定向到。

我的扩展中有此代码(参见教程中的内容):

var baseurl = 'https://my-app.appspot.com';
var oauth = ChromeExOAuth.initBackgroundPage({
    'request_url' : baseUrl + '/_ah/OAuthGetRequestToken',
    'authorize_url' : baseUrl + '/_ah/OAuthAuthorizeToken',
    'access_url' : baseUrl + '/_ah/OAuthGetAccessToken',
    'consumer_key' : 'anonymous',
    'consumer_secret' : 'anonymous',
    'scope' : baseUrl,
    'app_name' : 'MyApp'
});

...但我认为这不是问题,因为我注意到当我使用教程的 oAuth 参数时会发生类似的问题 - 我被重定向到一个页面,询问我是否要授予对 Google Drive 的访问权限并单击“授予访问权限”我被发送到about:blank并且似乎没有 OAuth 令牌。

任何想法都非常感谢。


更新也许我在回答我自己的问题 - 不确定。我还在使用 ChromeToPhone 扩展的源代码——我的代码基于此用于 OAuth 谷歌应用程序引擎方面。我尝试从源代码安装此扩展程序并遇到about:blank同样的问题。然后我去了扩展应用商店上的这个扩展,同样的事情也发生了。那么也许我的 Chrome(版本 31.0.1650.26 beta-m)坏了?其他人是否会发生这种情况,或者我的 Chrome 安装是否以某种方式损坏?

4

2 回答 2

2

解释

web_accessible_resourcesmanifest 属性的 Chrome 扩展文档在这里提到:

从 Web 源到扩展资源的导航将被阻止,除非该资源被列为 Web 可访问的。

然后降低:

默认情况下,使用 2 或更高版本的包内的资源manifest_version被阻止,并且必须通过此属性将其列入白名单。

显然,最后一部分是作为 Chrome 31 版本的一部分添加的。


解决方案

解决方案是web_accessible_resources在您的扩展清单中设置一个包含您的 OAuth 握手完成 URL 的数组,如下所示:

{
    "web_accessible_resources": [
         "oauth2/oauth2.html"
    ]
}


来源

https://code.google.com/p/chromium/issues/detail?id=310870#c4

http://developer.chrome.com/extensions/manifest/web_accessible_resources.html#web_accessible_resources

于 2013-12-12T20:09:14.200 回答
0

谷歌开发网站教程中的代码似乎适用于 chrome v30,但不适用于 v31。

如果尝试使用 WebStore 中的 chrometophone 应用程序,也会出现类似问题。

只能得出结论,Chrome 中发生了一些变化,这意味着本教程中提供的 oauth js 库不再工作——这里作为潜在问题提出。走着瞧吧。

于 2013-10-24T00:21:54.793 回答