NodeJS

Hur man godkänner användare med Google OAuth i nod.js

Hur man godkänner användare med Google OAuth i nod.js

Öppen auktorisering, även känd som OAuth, är ett protokoll som används för att auktorisera en användare på din webbplats med någon tredje parts tjänst som Google, Github, Facebook, etc. Tredjepartstjänsten delar viss information (namn, e-post, profilbild etc.).) med din webbplats och auktoriserar sedan användaren för dess räkning utan att hantera lösenorden och användarnamnen för din webbplats, och sparar användarna mycket extra problem.

Hur OAuth fungerar

När en användare klickar på "Logga in med Google" tar den användaren till Googles OAuth-samtycksida. När användaren samtycker till samtycket och autentiserar sin identitet på Google kommer Google att kontakta din webbplats som en tredje parts tjänst och auktorisera användaren för dess räkning och dela viss information med din webbplats. På detta sätt kan användaren auktoriseras utan att hantera autentiseringsuppgifterna för din webbplats separat.

Implementering av Google OAuth med hjälp av Node.js

Nästan alla programmeringsspråk tillhandahåller olika bibliotek för att implementera google oauth för att auktorisera användare. Nod.js tillhandahåller 'pass' och 'pass-google-oauth20' bibliotek för att implementera google oauth. I den här artikeln implementerar vi ett oauth-protokoll för att ge användare rätt att använda noden.js.

Skapa ett projekt på Google

Det första steget för att implementera Google OAuth är att skapa ett projekt på Googles utvecklarkonsol för din webbplats. Detta projekt används för att använda API-nycklarna för att göra förfrågningar till Google om öppen autentisering. Gå till följande länk och skapa ditt projekt.

https: // konsol.utvecklare.Google.com

Konfigurerar Google Project

När du har skapat projektet går du in i projektet och väljer "OAuth-samtyckskärm" från menyn till vänster.

Klicka på "skapa" -knappen och ge alla detaljer om ditt projekt. Klicka på "Spara och fortsätt" för att gå vidare.

Ge nu omfattningen av ditt projekt. Omfattningar är de typer av behörigheter för åtkomst till användarens data från ett google-konto. Du måste ställa in behörigheterna för att få specifik användardata från ditt Google-konto. Klicka på “Spara och fortsätt.”

Lägg nu till testanvändarna i projektet om du vill. Testanvändare är de enda tillåtna användare som kan komma åt din webbapplikation i testläge. För närvarande kommer vi inte att ange någon testanvändare och klicka på ”Spara och fortsätt” för att gå vidare till projektets sammanfattningssida.

Granska ditt projekt på sammanfattningssidan och spara konfigurationen. Nu kommer vi att skapa referenser för vårt projekt. Välj fliken "Inloggningsuppgifter" på menyn till vänster och klicka på knappen "Skapa referenser" för att generera OAuth 2.0 klient-ID.

Från rullgardinsmenyn väljer du 'OAuth-klient-ID' och anger typ av applikation som 'webbapplikation' och ditt applikations namn.

På samma sida måste vi tillhandahålla två URI: er, 'Auktoriserade Javascript-ursprung' och 'Auktoriserade omdirigerings-URI: er'. Det 'auktoriserade javascript-ursprunget' är HTTP-ursprunget för din webbapplikation och det kan inte ha någon sökväg. '' Auktoriserade omdirigerings-URI: er '' är den exakta URI med en sökväg där användaren kommer att omdirigeras efter Google-autentisering.

När du har angett alla obligatoriska poster klickar du på 'skapa' för att skapa OAuth-referenser.

Initierar nod.js Project

Hittills har vi skapat ett google-projekt för att auktorisera användare för vår applikation med hjälp av google. Nu ska vi initiera noden.js projekt för att genomföra oauth. Skapa en katalog med namnet 'auth' och starta expressprojektet.

[e-postskyddad]: ~ $ mkdir auth
[e-postskyddad]: ~ $ cd-autent
[e-postskyddad]: ~ $ npm init -y

Installera nödvändiga npm-paket

Att implementera Google OAuth med hjälp av nod.js, vi måste installera några npm-paket. Vi använder 'pass', 'express', 'path' och 'passport-google-oauth20'. Installera dessa paket med npm.

[e-postskyddad]: ~ $ npm installera expresspass pass-google-oauth20 sökväg

Skrivnod.js-kod

Först och främst kommer vi att skriva två enkla html-webbsidor, den med en knapp, och auktorisera användaren när man klickar på knappen. Den andra sidan kommer att godkännas och användaren kommer att omdirigeras till den auktoriserade sidan efter auktorisering. Skapa en fil 'public / index.html '.



OAuth


Auktorisera här

Skapa nu en fil 'public / success.html 'med följande innehåll.



OAuth


Auktoriserad



Efter att ha skapat webbsidor kommer vi nu att skriva kod för att ge användarna tillstånd att använda google oauth. Skapa ett filindex.js '.

// importera nödvändiga paket
const express = kräver ('express');
const pass = kräver ('pass');
const path = kräver ('path');
const GoogleStrategy = kräver ('passport-google-oauth20').Strategi;
const app = express ();
// definiera parametrar
// klient-id är parametern som vi får från Googles utvecklarkonsol
CLIENT_ID = ”xxxxxxx”;
// klienthemlighet tas också från Googles utvecklarkonsol
CLIENT_SECRET = ”xxxxx”;
// användaren kommer att omdirigeras till CALLBACK_URL efter auktorisering
CALLBACK_URL = ”http: // localhost: 8000 / behörig”;
// Portnummer måste vara detsamma som definierat i utvecklarkonsolen
PORT = 8000;
// konfigurera passprogramvara
app.användning (pass.initialisera ());
app.användning (pass.session());
pass.serializeUser (funktion (id, klar)
gjort (null, id);
);
pass.deserializeUser (funktion (id, klar)
gjort (null, id);
);
// följande middleware körs när pass. Autentiseringsmetoden anropas och returnerar olika parametrar som definierats i omfånget.
pass.använd (ny GoogleStrategy (
klient-ID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
callbackURL: CALLBACK_URL
,
async-funktion (accessToken, refreshToken, profil, e-post, cb)
returnera cb (null, e-post.id);

));
// serverar hemsidan för applikationen
app.get ('/', (req, res) =>

res.sendFile (sökväg.gå med (__ dirname + '/ public / index.html '));
);
// serverar framgångssida för applikationen
app.get ('/ success', (req, res) =>

res.sendFile (sökväg.gå med (__ dirname + '/ public / success.html '));
);
// användaren kommer att omdirigeras till google auth-sidan när den träffar rutten '/ google / auth'.
app.få ('/ google / auth',
pass.autentisera ('google', scope: ['profile', 'email'])
);
// omdirigering av autentiseringsfel definieras i följande rutt
app.få ('/ auktoriserad',
pass.autentisera ('google', failureRedirect: '/'),
(req, res) =>

res.omdirigera ('/ framgång');

);
// kör server
app.lyssna (PORT, () =>

trösta.log ("Server körs på Port" + PORT)
)

Testar Google OAuth

Nu är vår applikation klar och vi kan testa om den auktoriserar användarna som använder google oauth. Gå till rotkatalogen och kör programmet.

[e-postskyddad]: ~ $ nodindex.js

Ange nu webbadressen till din applikation i webbläsaren.

http: // localhost: 8000

Den visar hemsidan med en ankare.

När vi klickar på "Auktorisera här" kommer den att omdirigeras till google oauth-sidan.

Ditt applikationsnamn 'Test' visas på Googles autentiseringssida. När du godkänner ditt konto tar det dig till den auktoriserade sidan.

Slutsats

Att hantera användarnamn och lösenord för olika webbapplikationer är inte en glad uppgift för användarna. Många användare lämnar din webbapplikation utan att registrera sitt konto bara för att de inte vill hantera referenser. Auktoriseringsprocessen på din webbapplikation eller webbplats kan förenklas med hjälp av tjänster från tredje part som Google, Facebook, etc. Dessa tjänster auktoriserar användare för deras räkning, och användaren behöver inte hantera autentiseringsuppgifter separat. I den här artikeln har vi implementerat google oauth-protokollet för att ge användare rätt att använda Node.js.

Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...
Mus Mus vänsterklicka på knappen fungerar inte på Windows 10
Mus vänsterklicka på knappen fungerar inte på Windows 10
Om du använder en dedikerad mus med din bärbara dator eller stationära dator men musens vänsterklick-knapp fungerar inte på Windows 10/8/7 av någon an...
Mus Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Om du upptäcker att muspekaren hoppar eller rör sig på egen hand, automatiskt, slumpmässigt när du skriver in Windows-bärbar dator eller dator, kan nå...