コンテンツにスキップ

概要

@authrim/sveltekit は SvelteKit アプリケーション向けのフルスタック認証SDKです。Authrimのブラウザ/コアプロトコルクライアントをラップし、SvelteKit固有の統合機能 — server-mediated Direct Auth session、サーバーフック、Svelteストア、プリビルドコンポーネント、ページテンプレート、Handoff SSOヘルパー、tenant discovery — を提供します。

flowchart TB
    subgraph Server ["Server (hooks.server.ts)"]
        direction LR
        Handle["createAuthHandle()"]
        SSM["ServerSessionManager"]
        Load["requireAuth() /<br>createAuthLoad()"]
    end

    subgraph Client ["Client (ブラウザ)"]
        direction LR
        Auth["AuthrimClient"]
        Stores["Svelte Stores"]
        Components["Components"]
        UI["UI Library"]
    end

    subgraph Core ["@authrim/core"]
        direction LR
        CoreAuth["OIDC / OAuth"]
        CoreCrypto["PKCE / WebAuthn"]
    end

    Handle --> SSM
    SSM --> Load
    Load -->|SSRデータ| Auth
    Auth --> Stores
    Auth --> Core
    Stores --> Components
    Components --> UI
エクスポートパス用途主なインポート
@authrim/sveltekitクライアントエントリ — ファクトリ、型、コンテキスト、tenant discoverycreateAuthrim, AuthrimClient, AuthStores, TenantDiscoveryClient
@authrim/sveltekit/serverサーバーフック、セッションハンドラー、ロードヘルパー、Handoff SSOcreateAuthHandle, createDirectAuthSessionHandlers, requireAuth, createAuthLoad, verifyHandoffToken, createHandoffHandler
@authrim/sveltekit/storesストアファクトリ(上級者向け)createAuthStores
@authrim/sveltekit/componentsコアSvelteコンポーネントAuthProvider, ProtectedRoute, SignInButton
@authrim/sveltekit/uiUIコンポーネントライブラリButton, Input, EmailCodeForm, PasskeyList
@authrim/sveltekit/ui/stylesテーマCSSimport '@authrim/sveltekit/ui/styles'
@authrim/sveltekit/ui/templatesページテンプレートLoginTemplate, ConsentTemplate

AuthrimClient は名前空間を通じて認証機能を提供します:

名前空間メソッド用途
auth.passkeylogin(), signUp(), register(), isSupported()WebAuthnパスキー認証
auth.emailCodesend(), verify(), hasPendingVerification()Email Code認証
auth.socialloginWithPopup(), loginWithRedirect(), handleCallback()ソーシャルプロバイダー認証
auth.sessionget(), validate(), refresh(), isAuthenticated(), getUser(), clearCache()セッション管理
auth.consentgetData(), submit()OAuth同意画面
auth.deviceFlowsubmit()デバイス認可(RFC 8628)
auth.cibagetData(), approve(), reject()CIBAフロー
auth.loginChallengegetData()ログインチャレンジ画面
auth.stepUpstart(), getAction(), complete(), resend(), cancel()Canonical Step-Upアクション
auth.customerProfilesgetWithElevationGrant(), updateDelegated()Customer Profile protected resource API
auth.deviceslist(), rename(), unlink()セルフサービスのdevice inventory
auth.signInpasskey(), social()ショートカットメソッド
auth.signUppasskey()ショートカットメソッド
auth.signOut()サインアウト(リダイレクト指定可)
auth.fetch()cookie-session/token-session API呼び出し向けのprofile-aware fetchヘルパー
auth.storessession, user, isAuthenticated, loadingState, errorリアクティブSvelteストア
auth.on()イベント購読
項目詳細
Peer dependencysvelte ^4.0.0 || ^5.0.0
SDK内部の構文Svelte 4(export let, <slot>, on:event
アプリコードSvelte 5 runes を使用($state(), $props(), $derived(), $effect()
互換性SDKコンポーネントはSvelte 5プロジェクトでそのまま動作

このドキュメントでは Svelte 5 runes をデフォルトとして使用しています。Svelte 4構文については設定を参照してください。

@authrim/sveltekit@authrim/web と同じコア認証APIを共有しつつ、SvelteKit固有の機能を追加しています:

機能Web SDKSvelteKit SDK
認証API✓(共通)
Server-mediated Direct Auth session
サーバーフック / SSR
Svelteストア
Svelteコンポーネント
UIライブラリ & テンプレート
Smart Handoff SSOヘルパー
Tenant discoveryヘルパー
SvelteKitルーティング統合

認証フローの詳細(WebAuthn内部動作、PKCEフロー等)についてはWeb SDKドキュメントを参照してください。