Italiano
  • passportjs
  • oidc
  • express

Integrazione di Passport.js con Logto

Una guida pratica ed esempio per integrare Passport.js con Logto.

Sijie
Sijie
Developer

Smetti di sprecare settimane sull'autenticazione degli utenti
Lancia app sicure più velocemente con Logto. Integra l'autenticazione degli utenti in pochi minuti e concentrati sul tuo prodotto principale.
Inizia ora
Product screenshot

Passport.js è un middleware di autenticazione per Node.js che può essere inserito non invasivamente in qualsiasi applicazione web basata su Express. Questa guida completa si concentrerà sull'utilizzo del plugin passport-openidconnect, offrendo un modo semplice ma efficace per incorporare Logto con Passport.js. Durante questo tutorial, useremo Express.js per costruire la nostra applicazione. Tutto il codice di cui discuteremo è disponibile in un repository pubblico su GitHub.

Configurare express con sessione

Prima di addentrarci nel processo di integrazione, dovremo impostare il progetto di base installando Express.js e il suo middleware di sessione.

Assumendo che tu abbia un ambiente di progetto TypeScript preparato (se no, fai riferimento alla documentazione ufficiale di TypeScript), inizia installando i pacchetti necessari:

Preparare il file principale

Crea src/app.ts con il seguente codice:

Questo script inizializza l'app Express e configura cookieParser e il middleware di session per la gestione delle sessioni basate su cookie, cruciale per memorizzare i risultati di autenticazione in Passport.js. Successivamente utilizza il modulo http per avviare il servizio.

Creare un'applicazione Logto

Per procedere, è necessaria un'applicazione Logto. Creane una visitando la Console di Logto, navigando su “Applications”, e cliccando su “Create application”. Seleziona “Express”, dai un nome alla tua applicazione e clicca su “Create application”.

Create application

Dopo aver completato o terminato la lettura della guida alla creazione, troverai una pagina dettagliata con le informazioni di configurazione per i passaggi successivi.

Application detail

Configurazione degli URI

Nella pagina dei dettagli dell'applicazione, configura due valori:

  1. Redirect URIs: Imposta questo valore su http://localhost:3000/callback per allinearlo al percorso callback del progetto.
  2. Post Sign-out Redirect URIs: Usa http://localhost:3000 per semplicità, indirizzando gli utenti alla homepage dopo la disconnessione.

Puoi modificare questi valori successivamente.

Configura Passport.js con le impostazioni dell'applicazione

Installare le dipendenze

Installa passport e il plugin della strategia OIDC, passport-openidconnect:

Preparare il file di configurazione

Crea app/config.ts per la gestione della configurazione:

Configura le variabili di ambiente di conseguenza:

Variabile di AmbienteDescrizioneEsempio
APP_IDApp ID da Logto4ukboxxxxxxxxx
APP_SECRETApp Secret da Logto5aqccxxxxxxx
ENDPOINTEndpoint di Logtohttps://g5xxx.logto.app/

Inizializzare Passport.js con la strategia OIDC

Crea src/passport.ts

Questo codice inizializza Passport con la OpenIDConnectStrategy. I metodi di serializzazione e deserializzazione sono impostati a scopo dimostrativo.

Assicurati di inizializzare e collegare il middleware di Passport nella tua applicazione:

Creazione delle rotte di autenticazione

Ora creeremo rotte specifiche per i processi di autenticazione:

Accesso: /sign-in

Questa rotta costruisce e reindirizza a una rotta di autenticazione OIDC.

Gestire il callback di accesso: /callback

Questo gestisce il callback di accesso OIDC, memorizza i token e reindirizza alla homepage.

Disconnessione: /sign-out

Questo reindirizza all'URL di fine sessione di Logto, quindi di nuovo alla homepage.

Recupero dello stato di autenticazione e protezione delle rotte

Sviluppa la homepage con lo stato di autenticazione:

Qui, le informazioni utente vengono visualizzate utilizzando JSON.stringify, e l'esistenza di request.user viene utilizzata per proteggere le rotte.

Conclusioni

Congratulazioni per aver integrato Passport.js con Logto. Speriamo che questa guida possa aiutarti a migrare dai sistemi esistenti a Logto. Per un'esperienza di autenticazione migliorata, considera di provare Logto Cloud oggi stesso. Buona programmazione!