SvelteKitとLucia AuthによるOAuth
Lucia authライブラリを使用し、OAuthプロバイダーによるソーシャルログインを追加します。
「SvelteKitとLucia AuthによるOAuth」はCoddyKit上の無料Sveltejs Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSveltejs Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Sveltejs Academyコースには全4レッスンが含まれています。
OAuthフロー
OAuthを使うと、アプリにパスワードを共有せずにGoogleやGitHubなどでログインできます。
Lucia認証
LuciaはSvelteKitで広く使われている認証ライブラリで、セッション、OAuth、CSRFの処理を簡単にします。
Luciaをインストールする
インストールして、データベース用のアダプターを選択します。
npm install lucia @lucia-auth/adapter-prismaLuciaを初期化する
$lib/server/auth.jsで、アダプターと環境変数を使ってLuciaを設定します。
OAuthの設定
クライアントIDとシークレットを使ってプロバイダーの設定を追加します。
import { GitHub } from "arctic";
export const github = new GitHub(CLIENT_ID, CLIENT_SECRET);ログインルート
ユーザーをGitHubへリダイレクトする/login/githubを作成します。
コールバックルート
コールバックURLを処理し、コードをトークンと交換してセッションを作成します。
セッションCookie
LuciaはセッションCookieを設定し、読み取りや削除に使えるヘルパーを提供します。
ユーザーデータ
OAuthが成功したらユーザー情報を取得し、保存するか既存のアカウントに紐付けます。
OAuthにおけるCSRF
OAuthフローでのCSRFを防ぐため、stateパラメーターとPKCEを使用します。
複数プロバイダー
Arcticライブラリの同様のパターンを使って、Google、Apple、Discordなどを追加します。
クイックチェック
Luciaとは何ですか?
まとめ
Luciaを使うと、SvelteKitでのOAuthとセッションの処理が簡単になります。プロバイダー(GitHub、Google)を設定し、コールバックを処理してセッションを作成します。
よくある質問
「SvelteKitとLucia AuthによるOAuth」レッスンは無料ですか?
はい。「SvelteKitとLucia AuthによるOAuth」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Sveltejs Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Sveltejs Academyコースには全4レッスンが含まれています。
「SvelteKitとLucia AuthによるOAuth」で何を学びますか?
Lucia authライブラリを使用し、OAuthプロバイダーによるソーシャルログインを追加します。 ブラウザで直接実行するハンズオンコードでSveltejs Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Sveltejs Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSveltejs Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「SvelteKitとLucia AuthによるOAuth」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSveltejs Academyレッスンでコードを書いて実行できますか?
はい。すべてのSveltejs Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Cookieベースのセッション
- HTTP-only Cookie内のJWT
- handle()フックで保護されたルート
- SvelteKitとLucia AuthによるOAuth