我打算使用Kodi (former XBMC)
为Spotify
编写Python
插件。前一段时间,Spotify弃用了旧库libspotify
并引入了基于ReST
的新WebAPI
。我想使用这个api来请求数据,如播放列表,跟随专辑和Spotify的其他用户特定内容。此WebAPI
使用OAUTH
机制授权应用程序使用特定于用户的数据。
因此,我需要Client ID
和Client Secret
。虽然Client ID
是公开的,但我在将其存储在源代码中时没有问题。但是Client Secret
呢?应用程序要求此秘密在spotify上进行身份验证。因此,它也需要部署。
如何安全地部署此秘密,以使该插件的用户无法读出该秘密?
我不能使用混淆技术,因为python被解释,用户可以简单地启动解释器,导入我的模块并读出重建的秘密。加密密钥同样适用。应用程序需要能够解密秘密,因此,我还需要部署加密密钥。这是一个鸡或蛋的问题。
有关于此的任何建议吗?其他软件如何解决这个问题?
编辑:我刚发现这个RFC6819。似乎这是oauth
中的一般问题。