我发现令人困惑的是,当我第一次在php环境中尝试google api时,它要求我使用“客户端秘密”密钥,这是我通过api控制台获得的。 在Javascript api示例中没有这样的密钥需要,我理解如果它会在那里,代码将不再是秘密。
有没有理由为什么谷歌仍然需要PHP代码中的密钥? JS和PHP api之间是否存在差异,是否有些东西只能在PHP中完成?
答案 0 :(得分:1)
OAuth2规范区分客户端类型并为其提供不同的工作流程。
通常规范建议完整的授权代码授权"场景。由于您的PHP应用程序在远离最终用户的Web服务器上运行,因此PHP应用程序可以保护其客户端的秘密。
相反,嵌入式客户端(如手机上运行的应用程序或浏览器中的javascript)无法保护客户端密码,因为它们的环境可以从外部轻松访问。因此规范具有完全不同的隐含授权"不需要使用客户机密的场景。