Passport.js と Logto の統合
Passport.js と Logto を統合するための実践ガイドと例。
Passport.js と Logto を統合するための実践ガイドと例。
Passport.js は Node.js 用の認証ミドルウェアで、Express ベースのウェブアプリケーションにわずらわされることなく組み込むことができます。この包括的なガイドでは、passport-openidconnect プラグインを利用し、Passport.js と Logto を組み合わせるためのシンプルで効果的な方法を提供します。本チュートリアルでは、Express.js を使用してアプリケーションを構築します。ここで議論するすべてのコードは、公開された GitHub リポジトリ にあります。
統合プロセスに進む前に、Express.js とそのセッションミドルウェアをインストールして基本プロジェクトをセットアップする必要があります。
TypeScript プロジェクト環境が準備できていることを前提としています(準備ができていない場合は 公式 TypeScript ドキュメント を参照してください)。必要なパッケージをインストールすることから始めます:
次のコードを使用して src/app.ts を作成します:
このスクリプトは Express アプリを初期化し、Passport.js での認証結果を保存するために重要なクッキーをベースにしたセッション管理のために cookieParser と session ミドルウェアを設定します。その後、http モジュールを使用してサービスを開始します。
続行するには、Logto アプリケーションが必要です。Logto コンソール にアクセスし、「Applications」に移動して「Create application」をクリックして作成してください。「Express」を選択し、アプリケーションに名前を付け、「Create application」をクリックします。

作成ガイドを読み終えると、次のステップのための設定情報を含む詳細ページが表示されます。

アプリケーションの詳細ページで、次の 2 つの値を設定します:
http://localhost:3000/callback を設定します。http://localhost:3000 を使用し、サインアウト後にユーザーをホームページにリダイレクトします。これらの値は後で変更できます。
passport と OIDC 戦略プラグイン passport-openidconnect をインストールします:
設定管理用の app/config.ts を作成します:
環境変数を次のように設定します:
| Environment Variable | Description | Example |
|---|---|---|
APP_ID | App ID from Logto | 4ukboxxxxxxxxx |
APP_SECRET | App Secret from Logto | 5aqccxxxxxxx |
ENDPOINT | Logto Endpoint | https://g5xxx.logto.app/ |
src/passport.ts を作成します:
このコードは OpenIDConnectStrategy で Passport を初期化します。serialize と deserialize メソッドはデモ用に設定されています。
アプリケーション内で Passport ミドルウェアを初期化し、アタッチすることを忘れないでください:
認証プロセス用の特定のルートを作成します:
/sign-inこのルートは OIDC 認証ルートを構築してリダイレクトします。
/callbackこれは OIDC サインインコールバックを処理し、トークンを保存し、ホームページにリダイレクトします。
/sign-outこれは Logto のセッション終了 URL にリダイレクトし、その後ホームページに戻ります。
認証状態を用いたホームページを開発します:
ここでは、ユーザー情報が JSON.stringify を用いて表示され、request.user の存在がルートを保護するために使用されます。
Passport.js を Logto と統合したことをおめでとうございます。このガイドが既存のシステムから Logto を使用するものに移行する手助けとなることを願っています。より優れた認証体験のために、ぜひ Logto Cloud を今日お試しください。コーディングを楽しんでください!