为什么Google原生oauth2流需要客户端密钥?

Ale*_*rov 10 android oauth google-api ios

根据facebook oauth2 docs,客户端流程不需要客户端秘密参数.客户端流程可用于本机和移动Web应用程序.

但是google的原生oauth2流程需要客户端密码http://code.google.com/apis/accounts/docs/OAuth2.html#IA.

在这种情况下,黑客可以使用逆向工程工具窃取客户端密钥.

有人可以澄清为什么这样做了吗?

Chr*_*ars 11

根据Google员工的帖子,主要原因是他们为服务器端应用和本机应用使用相同的库.听起来他们并不认为client_secret在本机应用程序的上下文中是敏感的,但他们计划最终将其逐步​​用于已安装的应用程序流程.

来自https://groups.google.com/group/oauth2-dev/browse_thread/thread/1e714924ebcc7e60/edfaaad5830ff2e8:

我们不希望这些秘密保密 - 到目前为止我们主要包括它们所以今天使用图书馆很方便,并期望在将来的某个时候停止使用它们.

虽然这可能听起来很糟糕,但请记住,OAuth从未打算阻止恶意用户在您的移动/桌面应用程序环境中伪造请求.

如果你担心暴露client_secret,还有这里描述的客户端流程:http://code.google.com/apis/accounts/docs/OAuth2.html#CS据我所知,客户端-side flow不需要client_secret,并且可以从桌面或移动应用程序中正常工作.

-克里斯