2017-11-14 9 views
0

AWS SAMローカルでAWS Cognitoのサインインプロセス認証APIを実行しています。私はCognitoから正しくプロットされていますが、signInUser約束が解決されると(適切な応答で)statusCodeが200になるコールバックの代わりにcatch(statusCodeが400)のコールバックが起動されます。ラムダコールバックが機能しないのはなぜですか?

を参照してくださいここではラムダ関数: -

// A signin Lambda function 
export function handler (event: Object, context: Object, callback: Function) {  
    switch (event.httpMethod) { 
     case "GET": 
      // hard code login for SO question 
      signInUser({ username: 'XXXX', password: 'XXXXXXX'}) 
       .then((response) => { 
        console.log('This log is called correctly but callback on the next line is not'); 
        callback(null, { 
         statusCode: 200, 
         header: response.tokens.idToken.jwtToken, 
         body: "This is a signin operation, return success result" 
        }); 
       }) 
       .catch(
        callback(null, { 
         statusCode: 400, 
         body: "This is a failed signin operation" 
        }) 
       ); 
      break; 
     default: 
      // Send HTTP 501: Not Implemented 
      console.log("Error: unsupported HTTP method (" + event.httpMethod + ")"); 
      callback(null, {statusCode: 501}) 

    } 
} 

この現象が発生したり、それを修正する方法を引き起こしているものを任意のアイデア?

多くの感謝!

+0

'catch '関数を' catch'に渡した方法が間違っています。 –

答えて

1

.catch()は機能を持ちますが、コールバックの結果を渡しています。これを試してください:

.catch((error) => 
    callback(null, { 
     statusCode: 400, 
     body: "This is a failed signin operation" 
    }) 
) 
関連する問題