apiKey密钥ID和秘密是必需的,即使他们在express-stormpath中存在

时间:2016-07-06 05:47:06

标签: stormpath express-stormpath

我试图在我的Heroku应用程序上使用express-stormpath。我在这里关注文档,我的代码非常简单:

var express = require('express');
var app = express();
var stormpath = require('express-stormpath');

app.use(stormpath.init(app, {
  website: true
}));

app.on('stormpath.ready', function() {
  app.listen(3000);
});

我已经查看了this question并关注了Heroku devcenter docs。文档说,对于一个Heroku应用程序,它没有必要通过选项,但我仍然尝试传递选项,没有任何作用。例如,我试过这个:

app.use(stormpath.init(app, {
   // client: {
   //   file: './xxx.properties'
   // },
   client: {
     apiKey: {
       file: './xxx.properties',
       id: process.env.STORMPATH_API_KEY_ID || 'xxx',
       secret: process.env.STORMPATH_API_KEY_SECRET || 'xxx'    
     }
   },
   application: {
     href: 'https://api.stormpath.com/v1/applications/blah'
   },
}));

为了试着看看发生了什么,我在stormpath-config strategy valdiator添加了一个console.log行来打印客户端对象,它给了我这个:

{ file: './apiKey-xxx.properties',
  id: 'xxx',
  secret: 'xxx' }
{ file: null, id: null, secret: null }

Error: API key ID and secret is required.

为什么它被调用两次,第二次,为什么客户端对象具有文件,id和秘密的空值?

当我运行heroku config | grep STORMPATH时,我得到了

STORMPATH_API_KEY_ID:     xxxx
STORMPATH_API_KEY_SECRET: xxxx
STORMPATH_URL:    https://api.stormpath.com/v1/applications/[myappurl]

2 个答案:

答案 0 :(得分:2)

经过无数个小时后,我终于通过完全删除加载项并通过 Heroku CLI 重新安装它然后导出变量STORMPATH_CLIENT_APIKEY_ID和{{1 }}。出于某种原因,通过Heroku Dashboard安装它会导致express-stormpath找不到apiKey和secret字段(即使你导出变量)。

答案 1 :(得分:2)

我是express-stormpath库的原作者,还为Stormpath编写了Heroku文档。

这是我的错,这是Stormpath方面的文档/配置错误。

在当天,我们所有的库默认都会查找几个环境变量:

  • STORMPATH_URL(您的申请网址)
  • STORMPATH_API_KEY_ID
  • STORMPATH_API_KEY_SECRET

然而,不久之前,我们开始升级我们的库,并意识到我们希望在所有支持的语言/框架/等方面采用更标准的方法。为了使事情更加明确,我们基本上默认情况下,将我们查找的变量重命名为

  • STORMPATH_APPLICATION_HREF
  • STORMPATH_CLIENT_APIKEY_ID
  • STORMPATH_CLIENT_APIKEY_SECRET

不幸的是,我们还没有更新我们的Heroku集成或文档来反映这些变化,这就是为什么你遇到这个讨厌的问题。

我刚刚向我们的工程团队提交了一张票,用于修复我们的Heroku插件默认配置的变量名称以包含我们的新变量,我将在今天下午更新我们的Heroku文档以修复此问题。将来的其他任何人。

我真的很抱歉所有的困惑/沮丧。有时这些东西会滑过这些裂缝,这样的经历让我意识到我们需要更好的测试来及早发现这些东西。

我将在内部进行一些更改,以确保我们有更好的流程来推出像这样的更新。

如果你想要一件免费的Stormpath T恤,请打我,我会把一个发给你的,作为一个小小的方式说'谢谢'忍受烦恼:randall@stormpath.com

相关问题