根据facebook oauth2文档,客户端流程不需要客户端秘密参数。客户端流可以在本地和移动web应用中使用。
但是google的原生oauth2流需要客户端保密http://code.google.com/apis/accounts/docs/OAuth2.html#IA.
在这种情况下,客户端秘密可以被黑客使用逆向工程工具窃取。
谁能解释一下为什么这样做?
根据一位google员工的帖子,主要原因是他们对服务器端应用程序和本地应用程序使用相同的库。听起来他们不认为client_secret在本地应用的上下文中是敏感的,但他们计划最终在安装的应用流程中逐步淘汰它。
From 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据我所知,客户端流不需要client_secret,可以很好地从桌面或移动应用程序中工作。
屁股的