• passportjs
  • oidc
  • express

Integracja Passport.js z Logto

Praktyczny przewodnik i przykład integracji Passport.js z Logto.

Sijie
Sijie
Developer

Przestań tracić tygodnie na uwierzytelnianie użytkowników
Uruchamiaj bezpieczne aplikacje szybciej z Logto. Zintegruj uwierzytelnianie użytkowników w kilka minut i skup się na swoim głównym produkcie.
Rozpocznij
Product screenshot

Passport.js to middleware uwierzytelniające dla Node.js, które można bezproblemowo dodać do każdej aplikacji internetowej opartej na Express. Ten obszerny przewodnik skupi się na wykorzystaniu wtyczki passport-openidconnect, oferując prosty, ale skuteczny sposób na włączenie Logto do Passport.js. W trakcie tego poradnika będziemy korzystać z Express.js do budowania naszej aplikacji. Cały kod, o którym będziemy rozmawiać, jest dostępny w publicznym repozytorium GitHub.

Konfiguracja express z sesją

Zanim zagłębimy się w proces integracji, będziemy musieli przygotować podstawowy projekt z zainstalowaniem Express.js i jego middleware sesji.

Zakładając, że masz przygotowane środowisko projektowe TypeScript (jeśli nie, zapoznaj się z oficjalną dokumentacją TypeScript), zacznij od zainstalowania niezbędnych pakietów:

Przygotuj plik główny

Utwórz src/app.ts z następującym kodem:

Ten skrypt inicjuje aplikację Express i konfiguruje middleware cookieParser oraz session do zarządzania sesją opartą na ciasteczkach, co jest kluczowe do przechowywania wyników uwierzytelniania w Passport.js. Następnie używa modułu http do uruchomienia usługi.

Tworzenie aplikacji Logto

Aby kontynuować, konieczna jest aplikacja Logto. Utwórz ją, odwiedzając Logto Console, przechodząc do „Applications”, a następnie klikając „Create application”. Wybierz „Express”, nazwij swoją aplikację i kliknij „Create application”.

Create application

Po zakończeniu lub zapoznaniu się z przewodnikiem tworzenia, znajdziesz szczegółową stronę z informacjami konfiguracyjnymi do następnych kroków.

Application detail

Ustawienia URI

Na stronie szczegółów aplikacji skonfiguruj dwie wartości:

  1. Redirect URIs: Ustaw to na http://localhost:3000/callback, aby dostosować się do trasy zwrotnej projektu.
  2. Post Sign-out Redirect URIs: Użyj http://localhost:3000 dla uproszczenia, kierując użytkowników na stronę główną po wylogowaniu.

Możesz zmienić te wartości później.

Konfiguracja Passport.js z ustawieniami aplikacji

Instalacja zależności

Zainstaluj passport i wtyczkę strategii OIDC, passport-openidconnect:

Przygotuj plik konfiguracyjny

Utwórz app/config.ts do zarządzania konfiguracją:

Ustaw zmienne środowiskowe odpowiednio:

Environment VariableOpisPrzykład
APP_IDID aplikacji z Logto4ukboxxxxxxxxx
APP_SECRETSekret aplikacji z Logto5aqccxxxxxxx
ENDPOINTPunkt końcowy Logtohttps://g5xxx.logto.app/

Inicjalizacja Passport.js ze strategią OIDC

Utwórz src/passport.ts

Ten kod inicjuje Passport przy użyciu OpenIDConnectStrategy. Metody serializacji i deserializacji są ustawione do celów demonstracyjnych.

Upewnij się, że zainicjujesz i dołączysz middleware Passport w swojej aplikacji:

Tworzenie tras uwierzytelniania

Teraz utworzymy konkretne trasy do procesów uwierzytelniania:

Logowanie: /sign-in

Ta trasa buduje i przekierowuje do trasy uwierzytelniającej OIDC.

Obsługa callbacku logowania: /callback

Ta trasa obsługuje callback logowania OIDC, przechowuje tokeny i przekierowuje na stronę główną.

Wylogowanie: /sign-out

Ta trasa przekierowuje do końcowej sesji Logto, a następnie z powrotem na stronę główną.

Pobieranie stanu uwierzytelniania i ochrona tras

Rozwiń stronę główną z uwzględnieniem stanu uwierzytelniania:

Tutaj, informacje o użytkowniku są wyświetlane za pomocą JSON.stringify, a istnienie request.user służy do ochrony tras.

Podsumowanie

Gratulacje za zintegrowanie Passport.js z Logto. Mamy nadzieję, że ten przewodnik pomoże ci w migracji z istniejących systemów na korzystanie z Logto. Aby uzyskać lepsze doświadczenie uwierzytelniania, rozważ wypróbowanie Logto Cloud już dziś. Powodzenia w kodowaniu!