1

アプリケーションを 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());
4

1 に答える 1

0

Heroku のアプリに追加することで、 Heroku に Stormpath を承認させることができました。追加した後、Heroku はさまざまな API 資格情報を持つ Stormpath アカウントを提供してくれました。私はこれらをミドルウェアで使用しました。これが唯一の方法かどうかはわかりませんが、元の Stormpath アカウントには構成がほとんどなく、それらの設定を新しいものに移植するのは簡単でした。

于 2015-09-24T22:47:38.230 に答える