我想我了解 OAuth 2.0 在移动应用程序或网站的上下文中是如何工作的——我的情况也不是。
我有一个 C++命令行应用程序,我想授予对其中一项 Google 服务(Google Fusion Tables)的访问权限,但我认为这个问题适用于任何 Google 服务,或者见鬼,也许也适用于任何必须处理的命令行应用程序使用 OAuth2。
我有用户名。我有密码(用户输入的)。我需要获得一个令牌,这样我才能通过 Curl 拨打电话。实现这一目标的最简单方法是什么?
更新1:
在浏览了文档之后,似乎最不痛苦的 OAuth2 流程将是“已安装的应用程序”流程。
我在想的是,我的命令行工具将在不需要令牌的情况下发出对公共表的请求(但似乎我们仍然需要从 Google 发送 AppID,我可以从 Google API 仪表板获取)。
每当我的命令行工具需要使用私有资源时,该用户都需要提供 Google 提供的授权代码(然后我的命令行工具可以使用它来获取可用的令牌)。如果用户没有在命令行中提供授权码,我的工具只会打印一个链接,用户可以将其粘贴到 URL 以生成授权码。该链接如下所示:
一旦用户接受,她必须将该授权代码粘贴到终端,以便命令行工具可以使用它。命令行工具将使用授权代码向 Google 请求令牌,最后,我可以使用 Google 令牌进行 API 调用。
有几件事我还不清楚。授权码会变吗?如果是这样,我似乎需要在某处保存令牌并刷新令牌,以便每次令牌过期时我都可以重用刷新令牌。
是我一个人,还是这整件事看起来像是疯狂的谈话,只是为了让我可以从命令行使用 Google API?
我通常会使用ClientLogin flow,但一切似乎都表明它很快就会被弃用。