アプリケーションを Heroku でホストしようとしています。stormpath-sdk-angularjs
ユーザー管理、具体的にはとに Stormpath を使用しますstormpath-sdk-express
。Stormpath API 資格情報を 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 app[web.1]: userMessage: 「認証が必要です。」
ただし、アプリをローカルで起動できるため、資格情報が正しいことはわかっています。Heroku 構成から直接コピーした API 資格情報をハードコーディングして、ローカルで起動できるようにしました。なぜこれが機能しないのですか?
編集:
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());