我目前正在为新的Firefox操作系统构建一个javascript应用程序,并坚持如何通过OAuth v2实现Google Drive API。该应用程序可能正在
http://localhost and urn:ietf:wg:oauth:2.0:oob
,因此我拥有已安装应用程序的设置客户端ID以及Drive SDK的客户端ID。由于它位于应用程序中,因此我为OAuth嵌入了浏览器(iframe),其中用户将授予应用程序访问权限,并且应用程序将保存refresh_token并将用户重定向到应用程序。应该没有弹出窗口,这应该包含在应用程序中。
那么我怎样才能实现这个/最好的方法是什么,因为我无法访问localhost,哪种方法最好(例如jsclient,http请求......)?
这个应用程序只是基于客户端(没有服务器端)。另一个问题是,用户可以在我们发送给谷歌授权的应用程序中输入其用户名和密码吗?
答案 0 :(得分:2)
您可以参考使用Google日历caldev API的gaia calendar app。
编辑:阅读有关gaia-dev群组中OAuth flow for packaged Open Web Apps的最新讨论
答案 1 :(得分:1)
有关隐式授权(仅限浏览器,无服务器)策略的示例,请参阅https://github.com/LDSorg/fxos-oauth2-jquery-demo。
的manifest.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_uri
设置为http://use-a-fake-domain.com
。当然,您可以使用自己的域名 - 如果您无法将假域名添加到您正在使用的提供商的域名白名单中,您可能需要 - 我只是喜欢使用假域名,因为它& #39;给我一个视觉排队。
答案 2 :(得分:0)
我也有同样的问题。你在firefox操作系统中有更好的google auth解决方案吗?