2017-10-12 12 views
1

私のapiの応答ヘッダーに正しく設定しました。aws cognito && apiGatewayは状態401を返します。

私は、ヘッダー(「認証」)に取り付けた検証トークン で郵便配達を経由して、私のAPIをテストしたとき、それは私が私のフロントエンドがそのAPIを要求するコードをフェッチ確認200

を返され、決してがあるようですありませんエラーまたは障害。

どうすればできますか?私は今苦しんでいるものと同じものから苦しんだ誰もしません。

追加:

私のフロントエンドフェッチコードは次のようになります。

export const getDoc = async (docId, token) => { 
    const path = `${apiGateway.URL}`; 
    const body = { 
     docId: docId 
    }; 
    const headers = { 
     Authorization: token, 
     'Content-Type': 'application/json' 

    }; 
    const result = await fetch(path, { 
     body, 
     headers, 
    }); 
    if (result.status !== 200) { 
     throw new Error('failed to get doc'); 
    } 
    return result.json(); 
}; 
+0

@VijayanathViswanathanもちろん、私はAPIゲートウェイで基本的なCORS設定を行っています。私が上記のように、ポストマンのAPI呼び出しの成功。私のフロントエンドコードでは機能しません。 –

+0

'Authorization'リクエストヘッダと 'Content-Type:application/json'の両方がプリフライトを行うためにブラウザを起動します。だから問題はまさに私の前のコメントで説明したとおりです:あなたはOPTIONS要求の承認を必要としないようにサーバーを再構成する必要があります。その理由は、ブラウザは、そのプリフライトOPTIONSリクエストを発行するときにAuthorizationリクエストヘッダを送信しないからです。なぜなら、OPTIONS要求の目的はブラウザがサーバーに尋ねることだからです。Authorizationヘッダーを持つクロスオリジン要求を許可していますか? – sideshowbarker

答えて

2

あなただけの "トークンソース" フィールド、NOT 'method.request.headers.Authorization' に "認証" を入力してください。それ以外の場合は、401エラーが発生します。

関連する問題