AWS Cognito
こちらはユーザプールの作成をしていただければOKです。
基本的にはそのままの設定でよいはずです。
Supabaseとの連携に必要なidやアクセスキーを把握しておいてください。
- AWSのアクセスキーID
- AWSのシークレットアクセスキー
- AWSのリージョン
- CognitoのユーザプールID
SupabaseとCognitoの連携
それではCognitoとの連携部分を作っていきます。
内容は下記のSupabaseのドキュメントそのままなので英語が得意な方はこちらで。
https://supabase.com/docs/guides/database/extensions/wrappers/cognito
Supabase Wrappersの設定
Supabaseには外部データを扱うための拡張機能、Wrappers
があります。
https://github.com/supabase/wrappers
この機能を有効にして設定していきましょう。
SQLエディタで下記を入力してください。
create extension if not exists wrappers with schema extensions;
これで拡張機能は有効になりました。
次はwrapperを作成しましょう。
下記で作成できます。
create foreign data wrapper cognito_wrapper
handler cognito_fdw_handler
validator cognito_fdw_validator;
Vaultの利用
SupabaseにはVault
という安全にシークレットキーを管理するための仕組みがあるので今回のようにシークレットキーを管理する必要がある際は利用しましょう。
下記のSQLでシークレットキーをVaultに追加できます。
※ここでは説明しませんが、事前にAWSのアクセスキーを作成しておいてください。
insert into vault.secrets (name, secret)
values (
'cognito_secret_access_key',
'AWSのシークレットアクセスキー'
)
returning key_id;
設定するとVaultにキーが追加されます。これで直接シークレットキーを入力せず、idの入力で代用できます。
Cognitoと接続する
Wrappersのサーバを立ち上げてCognitoと接続できるようにしましょう。
create server cognito_server
foreign data wrapper cognito_wrapper
options (
aws_access_key_id 'AWSのアクセスキー',
api_key_id 'vaultから取得したAWSのシークレットアクセスキーID',
region 'AWSのリージョン',
user_pool_id 'CognitoのユーザプールID'
);
Cognitoのユーザデータを表示するための外部テーブルを作成
下記でcognitoのサーバからデータを同期して取得するためのテーブルを作成します。
(Select以外はできないテーブルです。)
create foreign table cognito (
email text,
username text
)
server cognito_server
options (
object 'users'
);
Cognitoとの同期を確認
Cognito側で手動でユーザを作成してみましょう。
ここまでの処理が成功していればテーブルにデータが追加されることがわかります。
- Next.js + SupabaseでTodoアプリ作成 CRUDの基本を学ぼう
- FirebaseとSupabaseの機能、料金、セキュリティ、AI観点などを含めて徹底比較
- Next.js とSupabaseで求人マッチングアプリを作る①
- 素早くアプリを作りたい! Vercel+Supabaseでプロジェクト開発
- Supabaseの機能一覧・解説 オープンソースのFirebase代替mBaaS
- Supabase CLIコマンド一覧
- Supabase RealtimeのBroadcast, Presenceを利用したキャンバス共有アプリを作る
- Supabaseのローカル開発環境を構築して開発体験を向上させつつ料金も節約
- Next.js + Supabaseでリアルタイムチャットを作ろう
- Next.js + Supabaseでソーシャルログインを実装する方法
- Next.js+Supabaseで認証機能を実装しよう【コード付き完全ガイド】
- Supabase + Next.jsで画像投稿アプリを最適化する(画像圧縮、ファイルサイズ制限、ファイルのアップロード数制限)
- OpenAI Embeddings API+ Supabase Vector Database + Next.jsでベクトル検索を実装する
- Supabase + AWS CognitoでAmplifyを利用せずサードパーティ認証する
- Supabaseでデータ更新があった時にSlack通知を送る
- Supabase Branchingでプレビュー環境を手に入れて開発体験を向上する
- Next.js + SupabaseでGraphQLを利用する方法
- SupabaseのEdge FunctionsとSendGridでメールを一斉送信する
- Supabaseで匿名認証とアカウントの本登録への昇格の方法
- Next.js + SupabaseでStorageを利用した画像投稿アプリ作成
- Next.js + SupabaseでRLSを利用して安全なアプリを作ろう。
- Next.js + SupabaseでAuth + Storageのストレージサービスを作る方法
- Next.jsとSupabaseで認証機能ありのリアルタイムチャットを作成する。
- Next.jsとSupabaseで認証つきチャットアプリを作成する(SNS風UI)
- Next.js + SupabaseでSMS認証を作成する方法
- Next.jsとSupabaseで全文検索を実装する方法
- Next.jsとSupabaseで作成したチャットアプリにお知らせ機能を実装する
- Nextjs + SupabaseでSupabaseのStorage Image Transformationsを利用する方法
- Supabase vs Neonの比較。機能や料金、セキュリティ、AIを徹底比較
- Supabaseのセルフホスティングをできるだけ安く行う方法
- Supabase + Cognitoの連携で外部連携を試す
- Supabase CLIのTesting機能を利用する
- Supabaseを利用する際に設定しておきたい項目