我将开发一个wordpress插件来访问谷歌分析并可视化小部件中的数据。所以我检查了一些现有的wordpress插件,比如着名的“Google Analytics Dashboard for WP(GADWP)” - https://wordpress.org/plugins/google-analytics-dashboard-for-wp/。我正在寻找一种方式,用户如何授权并获取刷新和访问令牌以代表用户(安装插件的用户)访问ga数据。在那里我发现这个插件(和所有其他谷歌分析wodpress插件)发布秘密。因为在插件(用户下载)中,我不可能(我认为)隐藏客户端的秘密,因为用户当然看到了源代码。
正如google documententation所描述的那样(https://developers.google.com/identity/protocols/OAuth2WebServer):重要提示:请勿将client_secrets.json文件存储在公共可访问的位置。此外,如果您将源代码共享到您的应用程序 - 例如,在GitHub上 - 将source_secrets.json文件存储在源树之外,以避免无意中共享您的客户端凭据。
所以在这种情况下,我认为请求的身份验证丢失了。如果我得到或猜测使用该插件的任何其他网站的刷新令牌,我将能够使用访问令牌交换刷新令牌(因为我知道客户端ID和秘密)并访问ga数据。我已经测试过了。
因此,我正在寻找一种更安全的方式来访问我的插件中的ga数据,而不让每个人都知道我的秘密。有没有解决方案或提示?我想通过我的服务器发送每个请求,所以没有人知道我的秘密,但这也不是问题的解决方案。在交换授权代码并接收刷新令牌时,我可能需要交换一些密钥对,用于加密每个后续请求吗?以下每个请求都将获取刷新令牌的新访问代码。
当然,每个用户都可以创建自己的客户端ID和密码。但现在这非常用户友好。
也许可以通过api创建一个新的api项目和oauth身份验证(你通过google api控制台正常做什么)?
感谢您的帮助和提示, 哈拉尔德