4

我目前正在为新的 Firefox OS 用 javascript 构建一个应用程序,并且一直坚持如何通过 OAuth v2 实现 Google Drive API。该应用程序可能已打开

http://localhost and urn:ietf:wg:oauth:2.0:oob

,因此我有已安装应用程序的设置客户端 ID 以及 Drive SDK 的客户端 ID。由于它在应用程序中,我已经嵌入了 OAuth 的浏览器(iframe),其中用户将授予应用程序访问权限,并且 refresh_token 将由应用程序保存,并且用户被重定向到应用程序。应该没有弹出窗口,并且应该包含在应用程序中。

那么我该如何完成这个/什么是最好的方法,因为我无法访问本地主机,哪种方法是最好的(例如 jsclient、http 请求,...)?

这个应用程序只是基于客户端(没有服务器端)。还有一个问题,用户可以在我们发送给谷歌授权的应用程序中输入其用户名和密码吗?

4

3 回答 3

2

你可以参考gaia calendar app,它使用了 google calendar caldev API。

编辑:阅读最近关于gaia-dev 组中打包的开放式 Web 应用程序的 OAuth 流程的讨论

于 2013-06-13T10:35:08.770 回答
1

有关隐式授予(仅限浏览器,无服务器)策略的示例,请参见https://github.com/LDSorg/fxos-oauth2-jquery-demo 。

清单.json:

{ "name": "OAuth2 jQuery Demo"
, "description": "Login using OAuth2 / OAuth3 with jQuery"
, "version": "1.0"
, "type": "privileged"
, "launch_path": "/index.html"
, "developer": {
    "name": "John Doe"
  , "url": "https://johndoe.com"
  }
, "redirects": {
    "from": "http://should-be-a-fake-domain.com"
  , "to": "/oauth-close.html"
  }
}

笔记:

必须是特权应用:

"type": "privileged"

并且重定向必须到位:

"redirects": {
  "from": "http://use-a-fake-domain.com/my-redirect"
, "to": "/oauth-close.html"
}

然后你将你的设置redirect_urihttp://use-a-fake-domain.com. 当然,您可以使用自己的域 - 如果您无法将假域添加到您正在使用的提供商的域白名单中,您可能需要这样做 - 我只是喜欢使用假域,因为它是一个可视队列我。

于 2015-04-05T21:44:39.283 回答
0

我也有同样的问题。你有更好的 google auth 解决方案吗?

Firefox OS 特权应用程序:拒绝访问创建的新窗口对象的属性“文档”

于 2014-07-03T11:00:57.150 回答