MezglsJS

Kā autorizēt lietotājus, izmantojot mezglā Google OAuth.js

Kā autorizēt lietotājus, izmantojot mezglā Google OAuth.js

Atvērtā autorizācija, kas pazīstama arī kā OAuth, ir protokols, ko izmanto, lai autorizētu lietotāju jūsu vietnē, izmantojot kādu trešo pušu pakalpojumu, piemēram, Google, Github, Facebook utt. Trešās puses pakalpojums koplieto dažus datus (vārds, e-pasts, profila attēls utt.) ar jūsu vietni un pēc tam pilnvaro lietotāju tā vietā, nepārvaldot savas vietnes paroles un lietotājvārdus, un ietaupot lietotājiem daudz papildu problēmu.

Kā darbojas OAuth

Kad lietotājs noklikšķina uz “Pieteikties ar Google”, lietotājs tiek novirzīts uz Google OAuth piekrišanas lapu. Kad lietotājs piekrīt piekrišanai un autentificē savu identitāti Google tīklā, Google sazināsies ar jūsu vietni kā trešās puses pakalpojumu un pilnvaros lietotāju tā vārdā un kopīgos dažus datus ar jūsu vietni. Tādā veidā lietotājs var tikt autorizēts, atsevišķi nepārvaldot jūsu vietnes akreditācijas datus.

Google OAuth ieviešana, izmantojot mezglu.js

Gandrīz visās programmēšanas valodās ir pieejamas dažādas bibliotēkas, lai ieviestu google oauth lietotāju autorizēšanai. Mezgls.js nodrošina bibliotēkas 'passport' un 'passport-google-oauth20', lai ieviestu google oauth. Šajā rakstā mēs ieviesīsim oauth protokolu, lai pilnvarotu lietotājus izmantot mezglu.js.

Izveidojiet projektu Google tīklā

Pirmais solis, lai ieviestu Google OAuth, ir izveidot projektu savas vietnes google izstrādātāja konsolē. Šis projekts tiek izmantots, lai iegūtu API atslēgas, kas tiek izmantotas, lai veiktu pieprasījumus Google par atvērtu autentifikāciju. Atveriet šo saiti un izveidojiet savu projektu.

https: // konsole.izstrādātājiem.google.com

Google projekta konfigurēšana

Pēc projekta izveides dodieties uz projektu un kreisās puses izvēlnē atlasiet “OAuth piekrišanas ekrāns”.

Noklikšķiniet uz pogas “izveidot” un norādiet visu informāciju par savu projektu. Noklikšķiniet uz “Saglabāt un turpināt”, lai turpinātu.

Tagad norādiet sava projekta apjomu. Darbības jomas ir atļauju veidi, lai piekļūtu lietotāja datiem no Google konta. Jums jāiestata atļaujas, lai no sava Google konta iegūtu konkrētus lietotāja datus. Noklikšķiniet uz “Saglabāt un turpināt.”

Tagad, ja vēlaties, pievienojiet projektam testa lietotājus. Pārbaudes lietotāji ir vienīgie atļautie lietotāji, kuri var piekļūt jūsu tīmekļa lietojumprogrammai testa režīmā. Pagaidām mēs neievadīsim nevienu testa lietotāju un noklikšķiniet uz Saglabāt un turpināt, lai pārietu uz projekta kopsavilkuma lapu.

Pārskatiet savu projektu kopsavilkuma lapā un saglabājiet konfigurāciju. Tagad mēs ģenerēsim akreditācijas datus savam projektam. Kreisās puses izvēlnē atlasiet cilni “Akreditācijas dati” un augšpusē noklikšķiniet uz pogas “Izveidot akreditācijas datus”, lai ģenerētu OAuth 2.0 klientu ID.

Nolaižamajā izvēlnē atlasiet “OAuth klienta ID” un norādiet lietojumprogrammas veidu kā “Tīmekļa lietojumprogramma” un lietojumprogrammas nosaukumu.

Tajā pašā lapā mums jānorāda divi URI, “Autorizētie Javascript Origins” un “Autorizētie novirzīšanas URI”. “Autorizētā javascript izcelsme” ir jūsu tīmekļa lietojumprogrammas HTTP izcelsme, un tai nevar būt ceļa. “Autorizētie novirzīšanas URI” ir precīzs URI ar ceļu, kur lietotājs tiks novirzīts pēc Google autentifikācijas.

Pēc visu nepieciešamo ierakstu ievadīšanas noklikšķiniet uz “izveidot”, lai izveidotu OAuth akreditācijas datus.

Sākot mezglu.js Projekts

Līdz šim mēs esam izveidojuši google projektu, lai autorizētu lietotājus mūsu lietojumprogrammai, izmantojot google. Tagad mēs iniciēsim mezglu.js projekts, lai ieviestu oauth. Izveidojiet direktoriju ar nosaukumu 'auth' un sāciet ekspressprojektu.

[aizsargāts ar e-pastu]: ~ $ mkdir auth
[aizsargāts ar e-pastu]: ~ $ cd aut
[aizsargāts ar e-pastu]: ~ $ npm init -y

Obligāto npm pakotņu instalēšana

Lai ieviestu Google OAuth, izmantojot mezglu.js, mums jāinstalē daži npm pakotnes. Mēs izmantosim “passport”, “express”, “path” un “passport-google-oauth20”. Instalējiet šīs paketes, izmantojot npm.

[aizsargāts ar e-pastu]: ~ $ npm instalējiet ātrās pases pases-google-oauth20 ceļu

Rakstīšanas mezgls.js kods

Pirmkārt, mēs uzrakstīsim divas vienkāršas html tīmekļa lapas, vienu ar pogu, un autorizēsim lietotāju, noklikšķinot uz pogas. Otrā lapa tiks autorizēta, un lietotājs pēc autorizācijas tiks novirzīts uz autorizēto lapu. Izveidojiet failu 'public / index.html '.



OAuth


Autorizēt šeit

Tagad izveidojiet failu "public / success".html 'ar šādu saturu.



OAuth


Atļauts



Pēc tīmekļa lapu izveides tagad mēs rakstīsim kodu, lai pilnvarotu lietotājus izmantot google oauth. Izveidot faila indeksu.js '.

// nepieciešamo paku importēšana
const express = pieprasīt ('express');
const pase = pieprasīt ('pase');
const ceļš = pieprasīt ('ceļš');
const GoogleStrategy = pieprasīt ('passport-google-oauth20').Stratēģija;
const app = express ();
// parametru noteikšana
// klienta ID ir parametrs, ko mēs iegūsim no Google izstrādātāja konsoles
KLIENTA_ID = ”xxxxxxx”;
// klienta noslēpums tiks paņemts arī no google izstrādātāja konsoles
CLIENT_SECRET = ”xxxxx”;
// lietotājs pēc autorizācijas tiks novirzīts uz vietni CALLBACK_URL
CALLBACK_URL = ”http: // localhost: 8000 / atļauts”;
// porta numuram jābūt tādam pašam, kā noteikts izstrādātāja konsolē
OSTA = 8000;
// pases starpprogrammatūras konfigurēšana
lietotne.izmantošana (pase.palaist());
lietotne.izmantošana (pase.sesija ());
pase.serializeUser (funkcija (id, izdarīts)
izdarīts (null, id);
);
pase.deserializeUser (function (id, done)
izdarīts (null, id);
);
// sekojošā starpprogrammatūra darbosies vienmēr, kad būs pase. Tiek izsaukta autentifikācijas metode, kas atgriež dažādus darbības jomā definētos parametrus.
pase.use (jaunā GoogleStrategy (
klienta ID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
atzvanīšanaURL: CALLBACK_URL
,
async funkcija (accessToken, refreshToken, profils, e-pasts, cb)
atgriezties cb (null, e-pasts.id);

));
// pieteikuma mājas lapas apkalpošana
lietotne.get ('/', (req, res) =>

rez.sendFile (ceļš.pievienoties (__ dirname + '/ public / index.html '));
);
// lietojumprogrammas veiksmes lapa
lietotne.get ('/ panākumi', (req, res) =>

rez.sendFile (ceļš.pievienoties (__ dirname + '/ public / success.html '));
);
// lietotājs tiks novirzīts uz google auth lapu, kad trāpīs maršruts '/ google / auth'.
lietotne.get ('/ google / auth',
pase.autentificēt ('google', scope: ['profile', 'email'])
);
// autentifikācijas kļūmes novirzīšana ir definēta šādā maršrutā
lietotne.get ('/ autorizēts',
pase.autentificēt ('google', FailRedirect: '/'),
(req, res) =>

rez.novirzīšana ('/ veiksme');

);
// darbojas serveris
lietotne.klausīties (OSTA, () =>

konsole.žurnāls (“Serveris darbojas portā” + PORT)
)

Notiek Google OAuth pārbaude

Tagad mūsu lietojumprogramma ir gatava, un mēs varam pārbaudīt, vai tā pilnvaro lietotājus, izmantojot google oauth. Pārejiet uz saknes direktoriju un palaidiet lietojumprogrammu.

[aizsargāts ar e-pastu]: ~ $ mezglu indekss.js

Tagad pārlūkprogrammā ievadiet savas lietojumprogrammas URL.

http: // localhost: 8000

Tas parāda mājas lapu ar enkura tagu.

Kad mēs noklikšķināsim uz “Autorizēt šeit”, tas novirzīs uz Google oauth lapu.

Jūsu pieteikuma nosaukums “Pārbaudīt” tiek parādīts Google autentifikācijas lapā. Pilnvarojot kontu, tas novirzīs jūs uz pilnvaroto lapu.

Secinājums

Dažādu tīmekļa lietojumprogrammu lietotājvārdu un paroļu pārvaldība lietotājiem nav patīkams uzdevums. Daudzi lietotāji pamet jūsu tīmekļa lietojumprogrammu, nereģistrējot savu kontu tikai tāpēc, ka nevēlas pārvaldīt akreditācijas datus. Autorizācijas procesu jūsu tīmekļa lietojumprogrammā vai vietnē var vienkāršot, izmantojot trešo pušu pakalpojumus, piemēram, Google, Facebook utt. Šie pakalpojumi pilnvaro lietotājus viņu vārdā, un lietotājam nav atsevišķi jāpārvalda akreditācijas dati. Šajā rakstā mēs esam ieviesuši google oauth protokolu, lai atļautu lietotājiem izmantot mezglu.js.

Populārākās Oculus App Lab spēles
Ja esat Oculus austiņu īpašnieks, jums ir jāsazinās par sānu ielādi. Sānu ielāde ir process, kurā austiņās tiek instalēts saturs, kas nav veikals. Sid...
10 labākās spēles, kuras spēlēt Ubuntu
Windows platforma ir bijusi viena no dominējošajām spēļu platformām, jo ​​mūsdienās tiek attīstīts milzīgs spēļu skaits, lai atbalstītu Windows. Vai k...
5 labākās arkādes spēles Linux
Mūsdienās datori ir nopietnas mašīnas, kuras izmanto spēlēšanai. Ja jūs nevarat iegūt jauno augsto rezultātu, jūs zināt, ko es domāju. Šajā ierakstā j...