oauth Chrome扩展程序Google App Engine

时间:2013-10-23 22:45:41

标签: google-app-engine google-chrome oauth google-chrome-extension

有没有人有幸在Google Chrome扩展程序和Google App引擎之间获得OAuth,以便能够很好地发挥作用(或其他任何事情?)。我已按照所有步骤操作。我已按照此Google Dev tutorial中的步骤操作,无论在握手过程结束时,我都会被重定向到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云端硬盘的访问权限以及点击'授予访问权限'我收到了about:blank,似乎没有OAuth令牌。

任何想法都非常感激。


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

2 个答案:

答案 0 :(得分:2)

说明

web_accessible_resources清单属性here的Chrome扩展程序文档提到:

  

除非资源列为可通过网络访问,否则将阻止从Web源到扩展资源的导航。

然后降低:

  

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

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


解决方案

解决方案是将扩展程序清单中的web_accessible_resources设置为包含OAuth握手完成网址的数组,如下所示:

{
    "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

答案 1 :(得分:0)

google dev网站教程的代码似乎适用于chrome v30,但不适用于v31。

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

只能断定Chrome中的某些内容发生了变化,这意味着教程中提供的oauth js库不再有效 - 引发潜在问题here。走着瞧吧。