2016-07-06 15 views
4

私はHerokuアプリでexpress-stormpathを使用しようとしています。私はここにドキュメントを以下のよ、と私のコードは、超簡単です:apiKeyキーIDと秘密は急行暴風雨の中にあっても必要です

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' 
    }, 
})); 

を、私はクライアントオブジェクトを印刷するstormpath-config strategy valdiatorにはconsole.logの行を追加し、それは私にこれを与える:

{ file: './apiKey-xxx.properties', 
    id: 'xxx', 
    secret: 'xxx' } 
{ file: null, id: null, secret: null } 

Error: API key ID and secret is required. 

なぜ2回呼び出され、2度目にクライアントオブジェクトがファイル、ID、および秘密のnull値を持つのですか?

私はheroku config | grep STORMPATHを実行すると、私は無限時間後、私は最終的にそれが完全にアドオンを削除し、HerokuのCLIを経由して、それを再インストールしてからエクスポートすることにより、作業を取得するために管理

STORMPATH_API_KEY_ID:  xxxx 
STORMPATH_API_KEY_SECRET: xxxx 
STORMPATH_URL: https://api.stormpath.com/v1/applications/[myappurl] 
+0

'heroku config |の出力は? grep STORMPATH'? Herokuに誤った環境変数が設定されている可能性があります。 –

+0

編集したenv変数が正しく設定されているように見えますが、ValidateClientConfigStrategy.jsはまだ '{file:null、id:null、secret:null} 'を出力しています – arete

+0

' 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'の代わりにこれらの環境変数を設定してください。 –

答えて

2

私はexpress-stormpathライブラリの元の著者であり、StormpathのHerokuのドキュメントも書いています。

これは100%の私の間違いであり、Stormpath側の事柄に関する文書化/設定上のバグです。日中

戻る、私たちのすべてのライブラリは、デフォルトでいくつかの環境変数を探しました:

  • STORMPATH_URL(アプリケーションのURL)
  • STORMPATH_API_KEY_ID
  • STORMPATH_API_KEY_SECRET

しかし、以前は図書館のアップグレードを開始していましたが、私たちはすべてのサポートを通じてより標準的なアプローチをしたいと考えていました

  • STORMPATH_APPLICATION_HREF
  • STORMPATH_CLIENT_APIKEY_ID
  • STORMPATH_CLIENT_APIKEY_SECRET
:物事をより明確にするために言語/フレームワーク/などRTED、我々は基本的に はに、私たちは、デフォルトで探し変数と改名しました

残念ながら、これらの変更を反映するためにHerokuの統合またはドキュメントを更新していないため、この厄介な問題に直面しました。

Herokuアドオンのデフォルト設定で新しい変数を含む変数の名前を修正するためのエンジニアリングチームにチケットを提出しました。この午後にHerokuのドキュメントを更新する予定です将来他の誰かのために。

私はすべての混乱/欲求不満について誠に申し訳ございません。時にはこれらのことが亀裂を突き抜けて、このような経験が私には、これを早期に捕まえるためのより良いテストが必要であることがわかっています。

私は内部的にいくつかの変更を加えて、このようなアップデートを展開するためのより良いプロセスがあることを確認します。

あなたが自由Stormpath Tシャツをしたい場合は、私を打つと、私は1つの迷惑と上に置くことのための「ありがとう」を言うための小さな方法として、あなたに出荷取得します:[email protected]

+0

私は同じ問題を抱えているようですが、ここで見つかった例に従うと、ローカルのエクスプレスアプリであるHerokuを使用していません。https ://stormpath.com/blog/making-expressjs-authentication-fun-again。同じデバッグでは、正しいデータが最初に表示され、データがすべて2度目にヌルになるように、2回呼び出されるストラテジ・バリデーターにつながりました。 – Carasel

+0

APIキーのペアをどう扱うのですか?チュートリアルを読んだ後でも、私はそれをダウンロードして全く分かりません。ありがとう。 – Samoth

2

取得変数STORMPATH_CLIENT_APIKEY_IDおよびSTORMPATH_CLIENT_APIKEY_SECRET。なんらかの理由で、Herokuダッシュボード経由でインストールすると、express-stormpathはapiKeyとシークレットフィールドを見つけられません(変数をエクスポートしても)。

関連する問題