0

mobilehub プロジェクトに関連付けられているイオン プロジェクトで増幅を構成しました。

API は、サーバーレス フレームワークを使用して作成されています。

functions:
  device:
      handler: handler.device
      events:
        - http:
            path: devices
            method: get
            authorizer: aws_iam
        - http:
            path: devices
            method: put
            authorizer: aws_iam
        - http:
            path: devices
            method: post
            authorizer: aws_iam
        - http:
            path: devices
            method: delete
            authorizer: aws_iam

API は機能し、私の知る限りでは、cognito ユーザー プールに関連付けられています。実際、その API で get を呼び出すと、「トークンがありません」というメッセージが表示されます。

Ionic アプリケーションで API 呼び出しを実装しようとしています。アプリケーションは Ionicawsテンプレートなので、問題なく cognito にログインできます。

「aws-exports.js」ファイルを mobilehub ページからダウンロードし、ソースに含めてインポートしました

import awsmobile from '../../aws-exports';
import Amplify, { API } from 'aws-amplify';

ionViewDidLoad(){

    Amplify.configure(awsmobile);
    console.log(Amplify);

    let apiName = 'dev-parameters';
    let path = '/devices';

    API.get(apiName, path).then(response => {

      debugger;
      console.log(response);
    });

}

OPTIONSただし、行われた http 呼び出しから、 403 を返す呼び出しが行われたことがわかります。

リクエスト:

:method GET
:authority  cx1smjqtj5.execute-api.eu-west-1.amazonaws.com
:scheme https
:path   /dev/devices
user-agent  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36     (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 OPR/50.0.2762.67
upgrade-insecure-requests   1
accept      text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=    0.8
accept-encoding gzip, deflate, br
accept-language en-GB,en-US;q=0.9,en;q=0.8

応答:

{
    "message": "Missing Authentication Token"
}

ここで何が欠けているのか、間違っているのか本当にわかりません。

4

1 に答える 1