2017-01-09 14 views
0

アプリケーションで次のコードを使用していくつかのヘッダがあるかどうかを確認しています。アプリケーションはサーバにデプロイされていてもlocalhostでは問題なく動作します。基本的には、リクエストにヘッダーがあるかどうかを確認しようとしています。サーバー上で、私は無効な要求を取得し続けます。 access_tokenではなくaccesstokenを渡すと、リクエストは正常に処理されます。この出来事はなぜ、Access_tokenはサーバではなくlocalhostで動作します

コードが動作するにif ((request.headers.access_token && request.headers.refresh_token && request.headers.id_token) || request.headers.token) を変更することで、私の質問は行方不明

const Hapi = require('hapi'); 
const Path = require('path'); 
const axios = require('axios'); 

    var tokenValidation = function (request, reply) { 


      if ((request.headers.access_token && request.headers.refresh_token && request.headers.id_token) || request.headers.token) { 

       if (request.headers.access_token != undefined) { 
        //do something 
        } 
        else { 
         return reply.continue(); 
        } 

       } else 
        return reply.continue(); 
      } 
      else { 
       var err = Boom.badRequest(‘Invalid request.'); 
       reply(err); 
      } 
     } 

     server.ext('onRequest', tokenValidation); 
+0

を無視するのでしょうか? –

+0

'server'とは何ですか? 'require'文を含めてください。 – TMG

+1

ローカルホストでは動作しますが、サーバでは動作しないリクエストの例(ヘッダー付き)を提供したいとします。 –

答えて

1

あなたは;, nginxの上明示的に設定underscores_in_headersが静かにドロップしますしない場合はHTTPヘッダ (消えます)アンダースコア(HTTP標準に従って完全に有効)のHTTPヘッダー。これは、ダッシュとアンダースコアの両方がそのプロセス中にアンダースコアにマッピングされるので、ヘッダーをCGI変数にマッピングするときのあいまいさを防ぐために行われます。

https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#missing--28disappearing-29-http-headers

私たちは、明示的にnginxの中にunderscores_in_headersする必要があり、そうでない彼らは、正しいあなたがサーバーにインストールされてNPM

関連する問題