Om du någonsin har använt ditt Google-konto för att logga in på ett program har du förmodligen sett hur enkelt det är. Du behöver bara klicka på en knapp och du behöver inte ange din e-postadress eller ditt lösenord. Även om det låter enkelt är det som händer under huven ganska komplicerat. Men verktyg som Passport gör det enkelt.

I den här handledningen kommer du att lära dig hur du implementerar Google Authentication i Node med Passport och Express.

Vad är pass?

Passport (eller Passport.js) är ett mellanprogram för nodautentisering som tillhandahåller över 500 strategier för autentisering av användare, inklusive social autentisering, med plattformar som Google och Twitter.

Du skulle använda passport-google-oauth2-strategin för att autentisera användare för Google.

Skapar Google Authentication System i Node

När en användare klickar på inloggningsknappen skickas de till Googles inloggningssida där de loggar in.

Google kommer att omdirigera användaren till din applikation med åtkomsttoken. Åtkomsttoken låter dig komma åt användarens profilinformation.

Hur man ställer in Google Authentication i NodeJS med hjälp av Passport

Följ stegen nedan för att auktorisera användare med Google OAuth.

Steg 1: Skapa ett Google Client ID och Client Secret

Innan du kan använda Google för att logga in användare på din app måste du registrera din applikation hos Google för att använda klient-ID och klienthemlighet när du konfigurerar Passport.

Logga in på Google Cloud Console och följ dessa steg för att registrera din app.

Skapa ett nytt projekt. Välj Autentiseringsuppgifter i menyraden och välj OAuth Client ID i rullgardinsmenyn.

För Applikationstyp, välj Webbapplikation. Lägg till ett föredraget namn för din ansökan i fältet Namn.

Öppna mappen med din favorittextredigerare och skapa en ny fil app.js. Detta kommer att fungera som startpunkt för din ansökan.

sätta upp mongodb

Du kommer att lagra användardata som tas emot från Google i en MongoDB-databas. Innan du sparar användarinformation måste du definiera strukturen i vilken data ska lagras. Weasel är perfekt för detta. Det ger ett mycket enkelt sätt att bygga en datamodell.

I UserModel.js har du importerat Mongoose och skapat ett nytt schema.

Observera att du grupperar information från Google. Detta är särskilt användbart när du också använder andra autentiseringsmetoder och användaren använder mer än en. Detta gör det enkelt att förhindra dubbelregistrering.

När du har fått profilinformationen från Google, kontrollera om användaren finns i databasen. Om de gör det, returnera helt enkelt den hittade användaren. Om användaren är ny, skapa ett nytt dokument i databasen och returnera den skapade användaren.

Observera att du arbetar med env-variabler så använd npm-paketet dotenv för att komma åt dem i din applikation.

skydda privata vägar

Nu när du är inloggad som användare, hur kan du begränsa vissa delar av din applikation till endast autentiserade användare? Ett sätt att gå till väga är att använda JSON Web Tokens (JWTs). JWT ger ett säkert sätt att överföra information.

Här extraherar du token från auktoriseringshuvudet där den lagras – vilket är mycket säkrare än att lagra det i begärandekroppen.

När token har verifierats skickas User-objektet tillbaka i begärandekroppen. För att auktorisera användare, lägg till Passport JWT-autentiseringsmellanvaran på skyddade rutter.

Nu är det bara förfrågningar som tillhandahåller en giltig token som får åtkomst.

nästa steg

Den här handledningen visade hur du kan använda Passport för att tillåta användare att logga in på din applikation med sitt Google-konto. Att använda Passport är mycket enklare än andra former, och du kommer att spara mycket tid på att använda det.

Passport tillhandahåller också andra autentiseringsstrategier att använda med andra identitetsleverantörer som Twitter och Facebook. Så det är värt att kolla upp dem också.

Leave a Reply

Your email address will not be published. Required fields are marked *