0

サーバー スクリプトから WebAPI 呼び出しを実行しようとしていますが、認証エラーが発生します。

これは私のserver.jsファイルがどのように見えるかです:

var app = require('http').createServer()
  , io = require('socket.io').listen(app)
  , fs = require('fs')
  , moment = require('moment')
  , request = require('request'); //https://github.com/mikeal/request

app.listen(8000, function () {
    console.log('server started');
    doSomethingOnServerStart();
});


function doSomethingOnServerStart()
{
    console.log('Getting something from server');

    request.get({
        url: 'http://localhost:63213/Api/MyAPI/GetSomething',

    },
        function (error, response, body) {
            console.log(response.statusCode);
            if (response.statusCode == 200) {

                console.log('data received from server');

            } else {
                console.log('error: ' + response.statusCode);
                console.log(body);
            }
        });

}

そのファイルは誰でもダウンロードできるため、ハッシュされたユーザー名/パスワードを server.js ファイルに保存することは避けたいと思います。

4

1 に答える 1

1

ハッシュ化されたユーザー名/パスワードを server.js ファイルに保存するという質問に対処するために、これが私が思いついた解決策です。すべての変数local.config.jsを設定するモジュールであるというファイルを作成します。process.envあなたの.gitignore(またはあなたのSCMに相当するものは何でも)がlocal.*(たとえば)を含むすべてのファイルを無視するようにして、バージョン管理にも入らないようにしてください。

次に、ローカルで実行しているときにのみこれをロードするようにします。したがって、サーバー上で、ローカルで実行していないときにのみ存在する環境変数を作成します (または既に存在するものを見つけます)。(たとえば)のそのプロパティがprocess.env.OPENSHIFT_APP_NAME存在しない場合は、ローカルで実行している必要があり、その場合は を必要とし、local.config.jsそこから環境変数をセットアップします。

次に、サーバーで環境変数を設定します。これはOpenShift で行う方法です。あなたはあるものを作ることができます:MY_USERNAMEそして別のものはMY_PASSWORD何かです。次に、process.env.MY_USERNAMEまたはでそれらにアクセスしますprocess.env.MY_PASSWORD

この方法は私には有効であり、多くの人が API キーとシークレットを保護するためにこれを行っていると思います。

これを入力して考え終えたところです。別の質問にすることをお勧めします。あなたがこれを行うかどうか私に知らせてください。あなたの好みに応じて受け入れることができるように、私は代わりにこれをそこに投稿します. 1 つの投稿で 2 つの質問をするべきではありません :)

于 2013-07-09T21:21:43.543 に答える