メインコンテンツまでスキップ

Supabase

Supabase統合(認証サポート)

lihilはSupabaseのサポートを導入しており、ユーザー認証から始まります。わずか一行のコードで:

app.include_routes(signin_route_factory(route_path="/login"))

Supabase Authによってサポートされた動作するログインエンドポイントを統合できます。

完全なコード例


from supabase import AsyncClient

from lihil import Lihil
from lihil.config import AppConfig, lhl_get_config, lhl_read_config
from lihil.plugins.auth.supabase import signin_route_factory


class ProjectConfig(AppConfig, kw_only=True):
SUPABASE_URL: str
SUPABASE_API_KEY: str


def supabase_factory() -> AsyncClient:
config = lhl_get_config(config_type=ProjectConfig)
return AsyncClient(
supabase_url=config.SUPABASE_URL, supabase_key=config.SUPABASE_API_KEY
)


async def lifespan(app: Lihil):
app.config = lhl_read_config(".env", config_type=ProjectConfig) # .envファイルから設定を読み取り、`ProjectConfig`オブジェクトに変換
app.graph.analyze(supabase_factory) # supabase.AsyncClient用のサンプルファクトリ関数を登録
app.include_routes(signin_route_factory(route_path="/login"))
yield


lhl = Lihil(lifespan=lifespan)

if __name__ == "__main__":
lhl.run(__file__)
  • 現在のプラグインは、SupabaseのAsyncClientを使用したメール/電話-パスワード認証フローの両方をサポートしています。フォーム解析、依存性注入、エラー応答を自動的に処理し、完全に型安全で構成可能でありながら動作します。

これは始まりに過ぎません。現在のサポートは基本的なログインとサインアップエンドポイントに限定されていますが、将来のリリースでは以下のようなSupabaseの他の機能のサポートを拡張します:

  • ユーザー管理

  • セッション処理

  • 認可ルール

  • リアルタイムとデータベース統合

目標は、ボイラープレートや回避策なしに、Supabaseとlihilを統合するためのシームレスで慣用的な体験を提供することです。