我想在我的Heroku應用程序上使用express-stormpath。我在這裏請遵照docs,和我的代碼是超級簡單:apiKey密鑰ID和祕密是必需的,即使他們在那裏快遞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'
},
}));
要嘗試,看看發生了什麼事情,我加了的console.log行至stormpath-config strategy valdiator打印的客戶對象,而且它給了我這樣的:
{ file: './apiKey-xxx.properties',
id: 'xxx',
secret: 'xxx' }
{ file: null, id: null, secret: null }
Error: API key ID and secret is required.
爲什麼它會被調用兩次,第二次爲什麼客戶端對象的文件,標識和密鑰的值爲空?
當我運行heroku config | grep STORMPATH
,我得到
STORMPATH_API_KEY_ID: xxxx
STORMPATH_API_KEY_SECRET: xxxx
STORMPATH_URL: https://api.stormpath.com/v1/applications/[myappurl]
'heroku config |的輸出是什麼? grep STORMPATH'?這可能是Heroku中填充了錯誤的環境變量。 –
編輯--env變量看起來設置正確,但ValidateClientConfigStrategy.js仍在打印'{file:null,id:null,secret:null}' – arete
您可以嘗試使用'heroku config:set'([docs](https:/ /devcenter.heroku.com/articles/config-vars#setting-up-config-vars-for-a-deployed-application))來設置這些環境變量:'STORMPATH_CLIENT_APIKEY_ID','STORMPATH_CLIENT_APIKEY_SECRET','STORMPATH_APPLICATION_HREF' –