Я пытаюсь разместить свое приложение на Heroku. Он использует Stormpath для управления пользователями, в частности stormpath-sdk-angularjs
и stormpath-sdk-express
. Я загрузил свои учетные данные API Stormpath в переменные конфигурации Heroku и включил их в промежуточное ПО Stormpath на своем сервере следующим образом:
var stormpathExpressSdk = require('stormpath-sdk-express');
var spMiddleware = stormpathExpressSdk.createMiddleware({
cache: 'memory',
apiKeyId: process.env.STORMPATH_API_KEY_ID,
apiKeySecret: process.env.STORMPATH_API_KEY_SECRET,
appHref: process.env.STORMPATH_APP_HREF,
secretKey: process.env.STORMPATH_SECRET_KEY,
...
(other options)
...
});
spMiddleware.attachDefaults(app);
app.use(spMiddleware.authenticate);
// Includes all routes
var router = require('./router')(app);
module.exports = app;
Ошибка, которую я продолжаю получать от heroku logs
:
ResourceError: HTTP 401, Stormpath 401 (http://www.stormpath.com/docs/quickstart/connect): требуется аутентификация с использованием действительного ключа API.]
2015-09-23T13:54:04.209032+00:00 приложение[web.1]: userMessage: «Требуется аутентификация».
Однако я знаю, что мои учетные данные верны, потому что я могу запустить свое приложение локально. Я даже жестко закодировал учетные данные API, скопированные прямо из конфигурации Heroku, чтобы убедиться, что я могу запускаться локально. Почему это не работает?
Изменить:
Промежуточное ПО, использовавшееся до промежуточного ПО Stormpath.
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
process.env
имеет все свойства и значения правильно? - person charlietfl   schedule 23.09.2015