OAuth 2.0是否始终需要流程中的浏览器

时间:2015-02-25 10:57:40

标签: security oauth oauth-2.0 google-drive-api

我可以在没有浏览器(或我的应用程序中的嵌入式浏览器)的情况下使用OAuth 2.0来执行夜间上传吗?

设置我有来自提供商控制台的刷新令牌和访问令牌 - Google Drive API

我希望在最初收到刷新/访问令牌后,使用Java SDK来使用/重用这些数据来上传数据,而无需任何浏览器授权。

2 个答案:

答案 0 :(得分:4)

是。这正是刷新令牌的无人参与访问的关键所在。当用户授予该应用程序权限时,即使您未登录该用户,也会特别提示他...#34; (或类似的,我无法记住确切的措辞)。您将刷新令牌存储在服务器的某个位置,然后在应用程序需要执行此操作时使用它来请求访问令牌。

为了澄清你问题中的一些措辞,refreash和访问令牌不会形成一对,所以说"重用这些",实际应该是"重用这个",在哪里'这个'是刷新令牌。

答案 1 :(得分:3)

OAuth 2.0需要浏览器一次用户同意

需要浏览器,以便用户可以同意应用程序访问用户数据的请求。 在用户同意与应用程序共享数据后,应用程序可以使用刷新令牌而无需基于浏览器的流程。

此处记录:https://developers.google.com/accounts/docs/OAuth2WebServer

替代非浏览器应用

您可以使用OAuth 2.0 for Devices流程: 您的应用可以充当从谷歌查询代码的设备,将其显示给用户,并要求用户浏览验证网址(例如使用(system.out.println ...)。

因此仍然需要浏览器,但您的应用程序本身并不需要向用户提供网页。