今日は最近流行りのSvelteスタックで基本的な操作を理解できる例を紹介しますね。
Supabaseのセットアップ
前回のSupabaseの記事を読んでおきましょう。
次に、テーブルを準備します。
- Supabaseダッシュボードにサインイン:
- Supabase にアクセスし、アカウントでサインインします。
- 新しいプロジェクトを作成:
- まだプロジェクトを作成していない場合、「New Project」ボタンをクリックし、新しいプロジェクトを作成する手順に従います。プロジェクトを作成すると、データベースのプロビジョニングが開始されます。
- SQLエディタへアクセス:
- データベースのプロビジョニングが開始されたら、プロジェクトダッシュボードに移動します。
- 「Todo List」クイックスタートを実行:
- プロジェクトダッシュボードで、”SQL” タブまたは “SQLエディタ” タブを見つけてクリックしてSQLエディタを開きます。
- SQLスニペットまたは例のリストをスクロールし、「TODO LIST: Build a basic todo list with Row Level Security」というスクリプトを探します。これは基本的な「Todo」テーブルを行レベルのセキュリティルールとともにセットアップする事前に用意されたSQLスクリプトです。
このスクリプトを選択します。
“Run”または “Execute” ボタンをクリックして選択したスクリプトを実行します。これにより、データベースに「Todo」テーブルが作成され、必要な行レベルのセキュリティルールも設定されます。
スクリプトが正常に実行されると、テーブルとルールが作成されたことを示す確認メッセージが表示されます。
“Data” タブに移動して、「Todo」テーブルが作成されていることを確認できます。
APIキーの取得
URLとキーの取得 プロジェクト設定に移動して(歯車アイコン)、APIタブを開き、API URLと匿名キー(anon
key)を見つけてください。これらは次の手順で必要になります。
匿名キーは、クライアント側のAPIキーです。ユーザーがログインするまで、データベースへの「匿名アクセス」を許可します。ユーザーがログインしたら、キーはユーザー自身のログイントークンに切り替わります。これにより、データの行レベルのセキュリティが有効になります。
注意:サービスロールキーはセキュリティポリシーをバイパスし、データに完全なアクセス権を持っています。これらのキーは秘密に保つ必要があり、サーバー環境でのみ使用され、クライアントやブラウザ上で使用しないでください。
プロジェクトのクローン
SupabaseのプロジェクトができたらSvelteのToDoリストのサンプルリポジトリがるのでこれをクローンしましょう。
https://github.com/supabase/supabase/tree/master/examples/todo-list/sveltejs-todo-list
下記のコマンドだとSupabaseの全部のリポがクローンされてしまうのでサイズはちょっと大きいかも
mkdir svelte-todo cd svelte-todo git clone https://github.com/supabase/supabase.git cd supabase/examples/todo-list/sveltejs-todo-list npm i
ではSvelteの例があるディレクトリに移動してライブラリをインストールしましょう。同じディレクトリにNext.jsとNuxt.jsで作られたToDoリストのサンプルプロジェクトもあるようですね。
ではcode . のコマンドでVSCodeを開きましょう。
ルートディレクトリに.env.exampleのファイルがあるので名前を.envに変更します。
次に中にある環境変数に先ほどSupabaseでとってきた値を入力します。
VITE_SUPABASE_URL=https://rcominfdsafsjrfpyeql.supabase.co VITE_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3qweiJzdXBhYmFzZSIsInJlZiI6InJjb21pbmxnc2Fmc2pyZnB5ZXFsIiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTgyNzUyODksImV4cCI6MjAxMzg1MTI4OX0.ll4gIpu9G5V76nCQPm-De9jeuq8-tVw4E92zlgTxJO4
アプリの起動
ではnpm run devのコマンドでSvelteアプリを起動します。
でサインアップをするとメールにちゃんとサインアップの確認メールが届きました。
そうするとToDoリストに誘導されてタスクを入力できるようになりましたね。
登録されたユーザーはAUthentication(認証)タブのユーザーから確認できますね。
でSvelteのアプリから追加したタスクもデータベースのテーブルに反映されていました。
Googleでのログインを追加する
まずは、Gooelデベロッパーコンソールからプロジェクトを作成をします。
Google Developer ConsoleからSupabaseのGoogle認証に使用するOAuthのClient IDを取得する手順は以下の通りです:
- Google Developer Consoleにサインイン:
- Google Developer Consoleにアカウントでサインインします。もしGoogleアカウントを持っていない場合、アカウントを作成してください。
- 新しいプロジェクトを作成:
- ダッシュボードで、新しいプロジェクトを作成します。プロジェクトの名前を入力し、必要な情報を設定します。
- 認証情報の設定:
- プロジェクトを作成したら、左側のナビゲーションメニューから「APIとサービス」>「認証情報」に移動します。
- OAuthクライアントIDの作成:
- 「認証情報」ページにアクセスしたら、”OAuth 2.0 クライアント IDの作成” ボタンをクリックします。
- アプリケーションの種類を選択:
- “アプリケーションの種類”セクションで、”ウェブアプリケーション”を選択します。
- 名前を指定:
- クライアントIDの名前を入力します。これは認識しやすい名前であるべきです。
- 承認リダイレクトURIを指定:
- “承認リダイレクトURI”セクションで、SupabaseにリダイレクトされるURIを指定します。通常、これはSupabaseアプリケーションのURIで、SupabaseがGoogle認証からの応答を受け取るURIです。
- クライアントIDとクライアントシークレットの取得:
- クライアントIDとクライアントシークレットが生成されます。これらはSupabaseの設定で使用するため、安全な場所に保存してください。
ではSupabaseの認証タブでキーを登録します。
これだけで、OKです。素晴らしいですね。
ではGoogleでもログインできることを確認しましょう。
今日はコードの説明なしですが、次回詳しくSvelteのファイル構成と一緒に見ていきましょう。