##はじめに
REST APIで作成できるオーソライザー(Cognito)を、HTTP API(β版)で作成します。
Cognitoでユーザープールを作成済みであることが前提です。
##API GatewayでHTTP API(β版)を作成する
特別な設定はせずにHTTP API(β版)を作成します。この章は読み飛ばしOKです。
- Amazon API Gateway のトップページに移動します。
- [APIを作成]ボタンを押します。
- HTTP API Beta の[構築]ボタンを押します。
-
Step1 APIの作成
[API名]に適当な名前を入力して、[次へ]ボタンを押します。
-
Step2 ルートを設定
設定は変更せず、[次へ]ボタンを押します。 -
Step3 ステージを定義
設定は変更せず、[次へ]ボタンを押します。
※初期値の$defaultは、自動でデプロイしてくれる、優秀な設定です。 -
Step4 確認して作成
[作成]ボタンを押します。
##オーソライザー(Cognito)を作成する
ここからが本題です。
- 左ペインの[開発>認可]を選択します。
- [オーソライザーを管理]タブを開きます。
- [作成]ボタンを押します。
- [名前]に適当な名前を入力します。
- [IDソース]を設定します。※画像の例は「$request.header.Authorization」
- [発行者 URL]を入力します。次のような形式です。
https://cognito-idp.{リージョン}.amazonaws.com/{プールID}
{リージョン}: リージョン名です。東京リージョンなら「ap-northeast-1」です。
{プールID}: Cognitoで作成したユーザープールのプールIDです。ユーザープールの「全般設定」から確認できます。 - [対象者]の[Add audience]ボタンを押して、{アプリクライアントID}を入力します。
{アプリクライアントID}は、ユーザープールの「全般設定>アプリクライアント」から確認できます。
※アプリクライアントが未作成の場合は作成してください。 - [作成]ボタンを押します。
これで、オーソライザーが作成できました。
##作成したオーソライザーを確認する
作成したオーソライザーの確認も載せようと思いましたが、長くなりましたのでまたの機会に。
獲得したIDトークンをfetchでリクエストすると良い感じに結果が得られます。
const jwt = '{IDトークン}';
const url = 'https://{API-ID}.execute-api.ap-northeast-1.amazonaws.com/';
const params = {
method: 'get',
headers: { 'Authorization': jwt },
};
await fetch(url, params);