最近谷歌宣布他们支持OAUth用于Gmail IMAP / SMTP。我浏览了他们的多个文档,但我仍然对他们是否支持已安装应用程序的OAuth感到困惑。
1。 他们在this documentation说:
注意:虽然是OAuth协议 支持桌面/已安装 应用程序用例,仅限Google 支持Web应用程序的OAuth。
但他们也有OAuth for installed applications的文件。
2。 当我读到他们指出的OAuth specification时,它说(见第11.7节):
在许多应用中,消费者 申请将受到控制 可能不受信任的政党。对于 例如,如果消费者是自由的 可用的桌面应用程序, 攻击者也许可以下载一个 复制分析。在这种情况下, 攻击者将能够恢复 消费者秘密用于验证 消费者对服务提供商。
此外,我认为上述第1点中的免责声明约为Google Data APIs,而IMAP / SMTP肯定不是其中的一部分。
据我所知,对于已安装的应用程序,我可以使用以下设置:
在我的应用程序中为example.com提供一个小型网络应用程序。这个与Google交流的网络应用获取了访问令牌。
已安装的应用程序仅与example.com通信以获取访问令牌。
安装的应用程序然后使用访问令牌与Google通话。
我现在很困惑。 这是唯一的方法吗? 此外,如果我从桌面应用程序执行OAuth,我们必须使用应用程序发送Consumer Secret密钥。然后,我们无法保持消费者密钥的保密性。
答案 0 :(得分:2)
是的,Oauth支持已安装的应用程序;请参阅Gmail IMAP and SMTP using OAuth文档。
您的设置很好,但我不认为有一个与谷歌谈话的网络应用程序是强制性的;例如,您的用户只需将“请求令牌”复制并粘贴到您的桌面客户端应用程序即可。