Heroku не может авторизовать Stormpath

Я пытаюсь разместить свое приложение на 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());

person photon    schedule 23.09.2015    source источник
comment
подтвердить, что process.env имеет все свойства и значения правильно?   -  person charlietfl    schedule 23.09.2015
comment
@charlietfl да, я сделал это, и у него правильные значения.   -  person photon    schedule 23.09.2015
comment
Что-нибудь еще в вашем приложении Express пытается изменить заголовки запроса?   -  person Nate Barbettini    schedule 25.09.2015
comment
@Nate Barbettini Я отредактировал сообщение, включив в него промежуточное программное обеспечение, использовавшееся до Stormpath.   -  person photon    schedule 25.09.2015


Ответы (1)


Мне удалось заставить Heroku авторизовать Stormpath, добавив его в мое приложение в Heroku. После его добавления Heroku предоставил мне учетную запись Stormpath с другими учетными данными API, и я использовал их в промежуточном программном обеспечении. Я не уверен, что это единственный способ, но у моей исходной учетной записи Stormpath было мало настроек, перенос этих настроек на новую был быстрым.

person photon    schedule 24.09.2015