问题描述
我在heroku上部署了一个应用程序(java),我的环境是:Develop and Staging。我的应用正在对外部api平台进行身份验证(jwt令牌)。
因此,我正在使用标准方法创建jwt令牌:登录私钥(.pem)并创建有效负载的jwt令牌aprtre编码(基于64)。一切正常。
但是在本地,我将所有变量存储在application-contextual-values.properties
文件中
示例:
secure.auth.iss=xxxxx
secure.auth.sub=yyy
secure.auth.iat=zzzz
secure.auth.pk=MIIE.... // this is my private key i use to sign on to create token
存储此信息的最佳方法是什么?在我的heroku vars配置中,如下所示:
SECURE_AUTH_ISS : XXXX
SECURE_AUTH_SUB : YYYY
....
SECURE_AUTH_PK : MII.....
对于每个环境,我都会添加正确的值?
解决方法
Heroku基于12 factor app原则,其中之一是:
将配置存储在环境中
为此,秘密就是配置。
,您的部署可能涉及一个用于开发的WebDyno和一个用于暂存的WebDyno。在每个环境中,为每个环境变量(即SECURE_AUTH_ISS,SECURE_AUTH_SUB等)配置一个ConfigVars
然后在每个环境上定义要使用的实际值。