我正在尝试在我的 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);
});
我已经看过这个问题并关注了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策略验证器中添加了一个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 和 secret 具有空值?
当我跑步时heroku config | grep STORMPATH
,我得到
STORMPATH_API_KEY_ID: xxxx
STORMPATH_API_KEY_SECRET: xxxx
STORMPATH_URL: https://api.stormpath.com/v1/applications/[myappurl]