NodeJS

Kako pooblastiti uporabnike, ki uporabljajo Google OAuth v vozlišču.js

Kako pooblastiti uporabnike, ki uporabljajo Google OAuth v vozlišču.js

Odprto pooblastilo, znano tudi kot OAuth, je protokol, ki se uporablja za pooblastitev uporabnika na vašem spletnem mestu z uporabo nekaterih drugih storitev, kot so Google, Github, Facebook itd. Neodvisna storitev deli nekatere podatke (ime, e-pošta, slika profila itd.) s svojim spletnim mestom in nato pooblasti uporabnika v njegovem imenu, ne da bi upravljal gesla in uporabniška imena za vaše spletno mesto ter uporabnikom prihranil veliko dodatnih težav.

Kako deluje OAuth

Ko uporabnik klikne »Prijava z Googlom«, ga odpre na stran s soglasjem za Google OAuth. Ko se uporabnik strinja s soglasjem in potrdi svojo identiteto v Googlu, bo Google stopil v stik z vašim spletnim mestom kot tretja oseba in v njegovem imenu pooblastil uporabnika ter z vašim spletnim mestom deli nekatere podatke. Na ta način je uporabnik lahko pooblaščen brez ločenega upravljanja poverilnic za vaše spletno mesto.

Implementacija Google OAuth z uporabo Node.js

Skoraj vsi programski jeziki ponujajo različne knjižnice za izvajanje google oauth za pooblaščanje uporabnikov. Vozlišče.js ponuja knjižnici 'potni list' in 'potni list-google-oauth20' za izvajanje google oauth. V tem članku bomo izvedli protokol oauth, s katerim bomo uporabnikom dovolili uporabo vozlišča.js.

Ustvarite projekt v Googlu

Prvi korak za uvedbo Googla OAuth je ustvariti projekt na Googlovi konzoli za razvijalce za vaše spletno mesto. Ta projekt se uporablja za pridobivanje ključev API za pošiljanje zahtev Googlu za odprto preverjanje pristnosti. Pojdite na naslednjo povezavo in ustvarite svoj projekt.

https: // konzola.razvijalci.google.com

Konfiguriranje Google Project

Ko ustvarite projekt, pojdite v projekt in v levem meniju izberite »Zaslon za soglasje OAuth«.

Kliknite gumb 'Ustvari' in navedite vse podrobnosti svojega projekta. Za nadaljevanje kliknite »Shrani in nadaljuj«.

Zdaj navedite obseg vašega projekta. Obsegi so vrste dovoljenj za dostop do uporabnikovih podatkov iz google računa. Nastaviti morate dovoljenja za pridobivanje določenih uporabniških podatkov iz vašega google računa. Kliknite »Shrani in nadaljuj«."

Zdaj v projekt dodajte testne uporabnike, če želite. Preizkusni uporabniki so edini dovoljeni uporabniki, ki lahko dostopajo do vaše spletne aplikacije v preskusnem načinu. Za zdaj ne bomo vpisali nobenega preizkusnega uporabnika in kliknili »Shrani in nadaljevanje«, da se premaknemo na stran s povzetkom projekta.

Preglejte svoj projekt na strani s povzetkom in shranite konfiguracijo. Zdaj bomo ustvarili poverilnice za naš projekt. Izberite zavihek "Poverilnice" v levem meniju in na vrhu kliknite gumb "Ustvari poverilnice", da ustvarite OAuth 2.0 ID-jev odjemalcev.

V spustnem meniju izberite »ID odjemalca OAuth« in določite vrsto aplikacije kot »Spletna aplikacija« in ime svoje aplikacije.

Na isti strani moramo navesti dva URI-ja, 'Authorized Javascript Origins' in 'Authorized redirect URI'. 'Pooblaščeni izvor javascripta' je izvor vaše spletne aplikacije HTTP in ne sme imeti nobene poti. 'Pooblaščeni preusmeritveni URI-ji' so natančni URI-ji s potjo, kamor bo uporabnik preusmerjen po Googlovem preverjanju pristnosti.

Po vnosu vseh zahtevanih vnosov kliknite na 'create', da ustvarite poverilnice OAuth.

Začetno vozlišče.js Project

Do zdaj smo ustvarili Googlov projekt za pooblaščanje uporabnikov za našo aplikacijo z Googlom. Zdaj bomo začeli vozlišče.js projekt za izvedbo oauth. Ustvarite imenik z imenom 'auth' in sprožite hitri projekt.

[zaščiteno po e-pošti]: ~ $ mkdir auth
[zaščiteno po e-pošti]: ~ $ cd auth
[e-pošta zaščitena]: ~ $ npm init -y

Namestitev potrebnih paketov npm

Za izvajanje Google OAuth z uporabo vozlišča.js, moramo namestiti nekaj paketov npm. Uporabili bomo 'potni list', 'express', 'pot' in 'potni list-google-oauth20'. Namestite te pakete s pomočjo npm.

[e-pošta zaščitena]: ~ $ npm namestite ekspresni potni list potni list-google-oauth20 pot

Pisalno vozlišče.js koda

Najprej bomo napisali dve preprosti spletni strani html, tisto z gumbom, in uporabnika pooblastili ob kliku na gumb. Druga stran bo avtorizirana, uporabnik pa bo po avtorizaciji preusmerjen na pooblaščeno stran. Ustvari datoteko 'public / index.html '.



OAuth


Dovoli tukaj

Zdaj ustvarite datoteko 'javna / uspešna.html 'z naslednjo vsebino.



OAuth


Pooblaščen



Po ustvarjanju spletnih strani bomo zdaj napisali kodo, s katero bomo pooblastili uporabnike za uporabo google oauth. Ustvari indeks datoteke.js '.

// uvoz potrebnih paketov
const express = require ('express');
const potni list = zahteva ('potni list');
const path = require ('path');
const GoogleStrategy = require ('potni list-google-oauth20').Strategija;
const app = express ();
// definiranje parametrov
// ID stranke je parameter, ki ga bomo dobili iz Googlove konzole za razvijalce
CLIENT_ID = "xxxxxxx";
// skrivnost odjemalca bo vzeta tudi s konzole za razvijalce google
CLIENT_SECRET = "xxxxx";
// uporabnik bo po avtorizaciji preusmerjen na CALLBACK_URL
CALLBACK_URL = ”http: // localhost: 8000 / pooblaščen”;
// številka vrat mora biti enaka opredeljeni v konzoli za razvijalce
PRISTANIŠČE = 8000;
// konfiguriranje vmesne programske opreme za potne liste
app.uporaba (potni list.inicializirajte ());
app.uporaba (potni list.seja ());
potni list.serializeUser (funkcija (id, končano)
končano (null, id);
);
potni list.deserializeUser (funkcija (id, končano)
končano (null, id);
);
// naslednja vmesna programska oprema se bo zagnala, kadar koli potni list. Pokliče se metoda overjanja, ki vrne različne parametre, določene v obsegu.
potni list.uporaba (nova GoogleStrategy (
clientID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
povratni klicURL: CALLBACK_URL
,
async funkcija (accessToken, refreshToken, profil, e-pošta, cb)
vrni cb (null, email.id);

));
// serviranje domače strani za aplikacijo
app.get ('/', (req, res) =>

res.sendFile (pot.pridruži (__dirname + '/ public / index.html '));
);
// služenje strani za uspeh aplikacije
app.get ('/ uspeh', (req, res) =>

res.sendFile (pot.pridruži se (__ ime + '/ javno / uspeh.html '));
);
// uporabnik bo preusmerjen na stran google auth, kadar koli doseže pot '/ google / auth'.
app.get ('/ google / auth',
potni list.preverite pristnost ('google', obseg: ['profil', 'e-pošta'])
);
// preusmeritev napake preverjanja pristnosti je definirana na naslednji poti
app.get ('/ pooblaščen',
potni list.preverite pristnost ('google', failureRedirect: '/'),
(zahteva, res) =>

res.preusmeritev ('/ uspeh');

);
// zagon strežnika
app.poslušaj (PORT, () =>

konzola.log (»Strežnik se izvaja na vratih« + PORT)
)

Testiranje Google OAuth

Zdaj je naša aplikacija pripravljena in lahko preizkusimo, ali pooblašča uporabnike z google oauth. Pojdite v korenski imenik in zaženite aplikacijo.

[zaščiteno po e-pošti]: ~ $ indeks vozlišča.js

Zdaj v brskalnik vnesite URL svoje aplikacije.

http: // localhost: 8000

Prikaže domačo stran s sidrno oznako.

Ko kliknemo na »Pooblasti tukaj«, se bo preusmeril na stran google oauth.

Ime vaše aplikacije »Test« je prikazano na Googlovi strani za preverjanje pristnosti. Ko odobrite svoj račun, vas bo vodil na pooblaščeno stran.

Zaključek

Upravljanje uporabniških imen in gesel za različne spletne aplikacije za uporabnike ni vesela naloga. Mnogi uporabniki zapustijo vašo spletno aplikacijo, ne da bi registrirali svoj račun samo zato, ker ne želijo upravljati s poverilnicami. Postopek avtorizacije vaše spletne aplikacije ali spletnega mesta je mogoče poenostaviti z uporabo neodvisnih storitev, kot so Google, Facebook itd. Te storitve pooblaščajo uporabnike v njihovem imenu in uporabniku ni treba ločeno upravljati s poverilnicami. V tem članku smo uvedli protokol google oauth, s katerim uporabnike pooblaščamo za uporabo Node.js.

Kako prikazati prekrivanje zaslonskega menija v celozaslonskih aplikacijah in igrah za Linux
Igranje celozaslonskih iger ali uporaba aplikacij v celozaslonskem načinu brez motenj vam lahko odreže ustrezne sistemske informacije, ki so vidne na ...
Top 5 kartic za zajemanje iger
Vsi smo v YouTubu videli in oboževali pretakanje iger. PewDiePie, Jakesepticye in Markiplier so le nekateri izmed najboljših igralcev, ki so zaslužili...
Kako razviti igro na Linuxu
Pred desetletjem le malo uporabnikov Linuxa napoveduje, da bo njihov najljubši operacijski sistem nekoč priljubljena igralna platforma za komercialne ...