MazgasJS

Kaip įgalioti vartotojus naudojant „Google OAuth“ mazge.js

Kaip įgalioti vartotojus naudojant „Google OAuth“ mazge.js

„Open Authorization“, taip pat žinomas kaip „OAuth“, yra protokolas, naudojamas įgalioti jūsų svetainės vartotoją naudojant tam tikrą trečiųjų šalių paslaugą, pvz., „Google“, „Github“, „Facebook“ ir kt. Trečiosios šalies paslauga dalijasi kai kuriais duomenimis (vardas, el. Pašto adresas, profilio nuotrauka ir kt.).) su jūsų svetaine, o tada įgalioja vartotoją jo vardu, netvarkydamas savo svetainės slaptažodžių ir vartotojo vardų bei taupydamas vartotojams daug papildomų rūpesčių.

Kaip veikia „OAuth“

Kai vartotojas spustelėja „Prisijungti naudodamas„ Google ““, jis nukreipia jį į „Google OAuth“ sutikimo puslapį. Kai vartotojas sutiks su sutikimu ir patvirtins savo tapatybę sistemoje „Google“, „Google“ susisieks su jūsų svetaine kaip trečiosios šalies paslauga ir suteiks vartotojui įgaliojimą jo vardu ir dalinsis kai kuriais duomenimis su jūsų svetaine. Tokiu būdu vartotojui gali būti suteiktas leidimas atskirai netvarkant jūsų svetainės prisijungimo duomenų.

„Google OAuth“ diegimas naudojant mazgą.js

Beveik visose programavimo kalbose pateikiamos skirtingos bibliotekos, kad būtų galima įdiegti „Google oauth“, kad vartotojai būtų įgalioti. Mazgas.„js“ teikia „passport“ ir „passport-google-oauth20“ bibliotekas, kad būtų galima įdiegti „Google oauth“. Šiame straipsnyje mes įdiegsime „oauth“ protokolą, kad vartotojai būtų įgalioti naudoti mazgą.js.

Sukurkite projektą „Google“

Pirmasis „Google OAuth“ diegimo žingsnis yra sukurti projektą „Google“ kūrėjų pulte jūsų svetainei. Šis projektas naudojamas norint gauti API raktus, naudojamus teikiant užklausas „Google“ dėl atviro autentifikavimo. Paimkite šią nuorodą ir sukurkite savo projektą.

https: // konsolė.kūrėjai.google.com

Konfigūruojamas „Google Project“

Sukūrę projektą, eikite į projektą ir kairiajame meniu pasirinkite „OAuth sutikimo ekranas“.

Spustelėkite mygtuką „sukurti“ ir pateikite visą savo projekto informaciją. Norėdami pereiti, spustelėkite „Išsaugoti ir tęsti“.

Dabar pateikite savo projekto apimtį. Taikymo sritys yra leidimų pasiekti vartotojo duomenis iš „Google“ paskyros tipai. Norėdami gauti konkrečius vartotojo duomenis iš „Google“ paskyros, turite nustatyti leidimus. Spustelėkite „Išsaugoti ir tęsti“.“

Dabar, jei norite, pridėkite bandomuosius vartotojus prie projekto. Bandomieji vartotojai yra vieninteliai leidžiami vartotojai, kurie gali pasiekti jūsų žiniatinklio programą bandymo režimu. Kol kas neįvesime jokio bandomojo vartotojo ir spustelėsime „Išsaugoti ir tęsti“, kad pereitumėte į projekto santraukos puslapį.

Peržiūrėkite savo projektą santraukos puslapyje ir išsaugokite konfigūraciją. Dabar mes sukursime savo projekto įgaliojimus. Kairėje pusėje esančiame meniu pasirinkite skirtuką „Kvalifikacijos duomenys“ ir viršuje spustelėkite mygtuką „Sukurti prisijungimo duomenis“, kad sukurtumėte „OAuth 2“.0 kliento ID.

Išskleidžiamajame meniu pasirinkite „OAuth kliento ID“ ir nurodykite programos tipą kaip „Žiniatinklio programa“ ir savo programos pavadinimą.

Tame pačiame puslapyje turime pateikti du URI, „Įgaliotos„ Javascript “ištakos“ ir „Įgalioti peradresavimo URI“. „Įgaliota„ JavaScript “kilmė“ yra jūsų žiniatinklio programos HTTP kilmė ir ji negali turėti jokio kelio. „Įgalioti peradresavimo URI“ yra tikslus URI su keliu, į kurį vartotojas bus nukreiptas po „Google“ autentifikavimo.

Įvedę visus reikiamus įrašus, spustelėkite „sukurti“, kad sukurtumėte „OAuth“ kredencialus.

Inicijuojantis mazgas.js projektas

Iki šiol mes sukūrėme „Google“ projektą, kad vartotojai būtų įgalioti naudoti mūsų programą naudojant „Google“. Dabar mes ketiname inicijuoti mazgą.js projektas įgyvendinti oauth. Sukurkite katalogą pavadinimu „auth“ ir inicijuokite greitąjį projektą.

[apsaugotas el. pašto adresas]: ~ $ mkdir auth
[apsaugotas el. pašto adresas]: ~ $ cd autentifikavimas
[apsaugotas el. paštas]: ~ $ npm init -y

Būtinų „npm“ paketų diegimas

Norėdami įdiegti „Google OAuth“ naudodami mazgą.js, turime įdiegti keletą npm paketų. Mes naudosime „passport“, „express“, „path“ ir „passport-google-oauth20“. Įdiekite šiuos paketus naudodami „npm“.

[apsaugotas el. pašto adresas]: ~ $ npm įdiegti greitojo paso paso-google-oauth20 kelią

Rašymo mazgas.js kodas

Visų pirma, mes parašysime du paprastus HTML tinklalapius, tuos, kuriuose yra mygtukas, ir suteiksime įgaliojimus vartotojui spustelėjus mygtuką. Antrasis puslapis bus autorizuotas, o vartotojas bus nukreiptas į autorizuotą puslapį po autorizacijos. Sukurkite failą „public / index“.HTML '.



OAuthas


Įgalioti čia

Dabar sukurkite failą „public / success“.html 'su tokiu turiniu.



OAuthas


Įgaliotas



Sukūrę tinklalapius, dabar parašysime kodą, kad vartotojai būtų įgalioti naudoti „Google oauth“. Sukurti failo rodyklę.js '.

// importuojamos reikalingos pakuotės
const express = reikalauti ('express');
const pasas = reikalauti ('pasas');
const kelias = reikalauti ('kelias');
const GoogleStrategy = reikalauti ('passport-google-oauth20').Strategija;
const programa = express ();
// parametrų apibrėžimas
// kliento ID yra parametras, kurį gausime iš „Google“ kūrėjų pulto
KLIENTAS_ID = ”xxxxxxx”;
// kliento paslaptis taip pat bus paimta iš „Google“ kūrėjų pulto
CLIENT_SECRET = ”xxxxx”;
// po autorizacijos vartotojas bus nukreiptas į CALLBACK_URL
CALLBACK_URL = ”http: // localhost: 8000 / įgaliotas”;
// prievado numeris turi būti toks pat, kaip apibrėžta kūrėjo pulte
Uostas = 8000;
// konfigūruoti paso tarpinę programinę įrangą
programa.naudojimas (pasas.inicializuoti ());
programa.naudojimas (pasas.sesija ());
pasas.serializeUser (funkcija (id, atlikta)
padaryta (null, id);
);
pasas.deserializeUser (funkcija (id, atlikta)
padaryta (null, id);
);
// sekanti tarpinė programinė įranga bus vykdoma bet kada pase. Iškviečiamas autentifikavimo metodas ir pateikia skirtingus parametrus, apibrėžtus sferoje.
pasas.use (nauja „GoogleStrategy“ (
kliento ID: CLIENT_ID,
kliento paslaptis: CLIENT_SECRET,
callbackURL: CALLBACK_URL
,
„async“ funkcija („accessToken“, „refreshToken“, profilis, el. paštas, cb)
grąžinti cb (null, el. paštas.id);

));
// pateikiamas programos pagrindinis puslapis
programa.gauti ('/', (req, res) =>

res.sendFile (kelias.prisijungti (__ dirname + '/ public / index.html '));
);
// programos sėkmės puslapis
programa.gauti ('/ sėkmė', (req, res) =>

res.sendFile (kelias.prisijungti (__ dirname + '/ public / sėkmė.html '));
);
// vartotojas bus nukreiptas į „Google“ autentifikavimo puslapį, kai pateksite į „/ google / auth“ maršrutą.
programa.gauti ('/ google / auth',
pasas.patvirtinti ('google', taikymo sritis: ['profilis', 'el. paštas'])
);
// autentifikavimo gedimo peradresavimas yra apibrėžtas tokiu maršrutu
programa.gauti ('/ įgaliotas',
pasas.patvirtinti ('google', failRedirect: '/'),
(req, res) =>

res.peradresuoti ('/ sėkmė');

);
// veikia serveris
programa.klausytis (Uostas, () =>

konsolė.žurnalas („Serveris veikia uoste“ + PORT)
)

Bandoma „Google OAuth“

Dabar mūsų programa yra parengta ir galime patikrinti, ar ji suteikia įgaliojimus vartotojams, naudojantiems „Google oauth“. Eikite į šakninį katalogą ir paleiskite programą.

[apsaugotas el. paštas]: ~ $ mazgo rodyklė.js

Dabar į naršyklę įveskite savo programos URL.

http: // localhost: 8000

Tai rodo pagrindinį puslapį su inkaro žyma.

Kai spustelėsime „Autorizuoti čia“, jis nukreips į „Google oauth“ puslapį.

Programos pavadinimas „Test“ rodomas „Google“ autentifikavimo puslapyje. Kai suteiksite prieigos teisę savo paskyrai, ji pateks į patvirtintą puslapį.

Išvada

Įvairių žiniatinklio programų vartotojo vardų ir slaptažodžių tvarkymas nėra maloni užduotis vartotojams. Daugelis vartotojų palieka jūsų žiniatinklio programą neregistruodami savo paskyros tik todėl, kad nenori tvarkyti prisijungimo duomenų. Autorizacijos procesą jūsų žiniatinklio programoje ar svetainėje galima supaprastinti naudojant trečiųjų šalių paslaugas, tokias kaip „Google“, „Facebook“ ir kt. Šios paslaugos suteikia vartotojams įgaliojimus jų vardu, o vartotojui nereikia atskirai valdyti prisijungimo duomenų. Šiame straipsnyje mes įdiegėme „Google oauth“ protokolą, kad vartotojai galėtų naudotis „Node“.js.

Kaip įdiegti „League of Legends“ „Ubuntu 14“.04
Jei esate „League of Legends“ gerbėjas, tai jums yra galimybė išbandyti „League of Legends“. Atminkite, kad LOL palaikoma „PlayOnLinux“, jei esate „Li...
Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...
Įdiekite naujausią „Dolecin Emulator“, skirtą „Gamecube“ ir „Wii“, sistemoje „Linux“
„Delfinų emuliatorius“ leidžia žaisti pasirinktus „Gamecube“ ir „Wii“ žaidimus „Linux“ asmeniniuose kompiuteriuose (PC). „Dolphin Emulator“ yra laisv...