Supabase : 新規登録時の OAuth 認証時に必要なトリガー関数

要約
Supabase を使った新規登録時の OAuth 認証を実装するためにはトリガー関数とトリガーの設定が必要です。Database Triggers は Supabase の管理画面で「Database > Triggers > プルダウンの auth」から確認できます。
意見はこのエリアに表示されます
アイキャッチ画像

どうもです。私は普段フロントエンドをやっているので、正直バックエンドとか PostgreSQL とか全然分からない。

でも、Supabase があればブラウザで直感的に操作できるし、それなら何とかなるだろうってことで、OAuth 認証のトリガーを実装してみました。

バックエンドを触るのはドキドキでしたが、意外と Supabase のおかげで簡単にできたので、備忘録として残しておこうと思います。

Supabase で新規登録時の OAuth 認証を動かすには、次の 2 つが必要です。

  • トリガー関数(Database Functions)
  • トリガー(Database Triggers)

トリガー関数とトリガーの違い

簡単に言うと、トリガー関数は「特定の処理をどうやるか」を決める部分で、トリガーは「いつその処理をやるか」を決める部分です。トリガー関数を作って、トリガーでタイミングを設定する、そんな感じで使います。

トリガー関数とは

トリガー関数は、何かしらのデータベース操作(例えば新規ユーザーの登録)が行われたときに、決まった処理を実行するためのコードです。例えば、新しいユーザーが登録されたら、そのユーザーの情報を他のテーブルにも自動で追加する、といった動作を設定します。

ちなみに、Database Triggers は Supabase の管理画面で「Database のTriggers の プルダウンの 'auth'」から確認できます。

注意! トリガー関数を変更した場合、一度トリガーを削除してから再作成しないと変更が反映されません。

手順

  1. 必須:既存のトリガーを削除する
  2. 新しいトリガー関数を作成する
  3. 新しいトリガーを作成する

トリガー関数を変更するたびにトリガーを削除して再作成する必要があります。ちょっと面倒ですが、最新のトリガー関数を適用するためには必要な手順です。

トリガーの削除

ここからは、一例です。

まずは、既存のトリガーを削除します。Functions のページからではなく、「SQL エディター」で以下のコードを実行して、既存のトリガーを削除してください。

トリガー関数を GUI で作成

次に、新しいトリガー関数を作成します。GUI で行う場合は、「Database の Database Functions」で「Create a new function」を選択し、以下のコードを入力します。

トリガー関数を SQL エディターで編集する

Functions からの編集ではなく、「SQL エディター」で新しいトリガー関数を作成することもできます。例えば、以下のコードでトリガー関数を作成します。

新しいトリガーを作成する

最後に、新しいトリガーを作成します。これも「SQL エディター」で行います。

例えば他にも、メールで認証する場合はこんな感じです:

もしくは、一般的な新しいユーザー向けにはこちら:

認証に失敗する場合

認証がうまくいかない場合は、Supabase の管理画面で「Logs の Auth」を確認してみましょう。ここに失敗した原因が書かれているので、それを手がかりにデバッグしましょう。

おわりに

Supabase のトリガーは、少し面倒な手順もありますが、OAuth 認証のようなバックエンドの作業をグッと楽にしてくれます。今回はトリガー関数とトリガーの違い、そしてその設定方法について紹介しました。もしバックエンドの設定が不安でも、Supabase のシンプルな操作を試してみてください。きっと思っているより簡単に、便利な機能を作ることができますよ。

Explore More
関連記事はありません。