oauth Chrome 扩展 Google App Engine
Posted
技术标签:
【中文标题】oauth Chrome 扩展 Google App Engine【英文标题】:oauth Chrome Extension Google App Engine 【发布时间】:2013-11-02 10:32:19 【问题描述】:有没有人幸运地让 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 Drive 的访问权限并单击“授予访问权限'我被发送到 about:blank
并且似乎没有 OAuth 令牌。
非常感谢任何想法。
更新也许我在回答我自己的问题 - 不确定。
我还在使用 ChromeToPhone 扩展的源代码——我的代码基于 OAuth 谷歌应用引擎方面的东西。我尝试从源代码安装此扩展程序并得到about:blank
同样的问题。然后我去了扩展应用商店上的这个扩展,同样的事情也发生了。那么也许我的 Chrome(版本 31.0.1650.26 beta-m)坏了?其他人是否会发生这种情况,或者我的 Chrome 安装是否以某种方式损坏?
【问题讨论】:
【参考方案1】:说明
web_accessible_resources
清单属性 here 的 Chrome 扩展文档提到:
除非资源被列为网络可访问,否则从网络源到扩展资源的导航将被阻止。
然后再降低:
使用
manifest_version
2 或更高版本的包内的资源默认被阻止,并且必须通过此属性将其列入白名单。
显然最后一部分是作为 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
【讨论】:
这对我有用(对确切的文件名进行了一些更改)。 很高兴我能帮上忙!当您使用 Boris Smus 的 OAuth2.js 时,文件名适用,因为我认为这是 Chrome 扩展中最常见的 OAuth 使用方法。【参考方案2】:谷歌开发网站教程中的代码似乎适用于 chrome v30,但不适用于 v31。
如果尝试使用 WebStore 中的 chrometophone 应用程序会出现类似问题。
只能得出结论,Chrome 发生了一些变化,这意味着教程中提供的 oauth js 库不再工作 - 作为潜在问题 here 提出。走着瞧吧。
【讨论】:
以上是关于oauth Chrome 扩展 Google App Engine的主要内容,如果未能解决你的问题,请参考以下文章
在 Chrome 扩展程序中使用 Google 帐户进行服务器端身份验证
GAPI 的 OAuth - 初始登录 Javascript 后避免身份验证和授权