SõlmJS

Kuidas volitada kasutajaid sõlmes Google OAuthi abil.js

Kuidas volitada kasutajaid sõlmes Google OAuthi abil.js

Avatud autoriseerimine, tuntud ka kui OAuth, on protokoll, mida kasutatakse teie veebisaidi kasutaja volitamiseks mõne kolmanda osapoole teenuse, näiteks Google, Github, Facebook jne abil. Kolmanda osapoole teenus jagab mõningaid andmeid (nimi, e-posti aadress, profiilipilt jne.) oma veebisaidiga ja volitab seejärel kasutaja tema nimel, haldamata teie veebisaidi paroole ja kasutajanimesid ning säästmaks kasutajatelt palju lisaprobleeme.

Kuidas OAuth töötab

Kui kasutaja klõpsab nupul „Google'iga sisselogimine”, viib see kasutaja Google OAuthi nõusolekulehele. Kui kasutaja nõustub nõusolekuga ja autentib oma identiteedi Google'is, võtab Google teie veebisaidi kui kolmanda osapoole teenuse ühendust ja volitab kasutaja tema nimel ning jagab teie veebisaidiga mõnda teavet. Nii saab kasutaja autoriseerida ilma teie veebisaidi mandaate eraldi haldamata.

Google OAuthi juurutamine sõlme abil.js

Peaaegu kõik programmeerimiskeeled pakuvad kasutajate volitamiseks Google oauthi rakendamiseks erinevaid teeke. Sõlm.js pakub teenuse google oauth rakendamiseks teeke „pass” ja „passport-google-oauth20”. Selles artiklis rakendame oauth-protokolli, et volitada kasutajaid sõlme kasutama.js.

Looge Google'is projekt

Esimene samm Google OAuthi juurutamiseks on oma veebisaidi jaoks Google'i arendajakonsoolil projekti loomine. Seda projekti kasutatakse API-võtmete saamiseks, et Google'ile avatud autentimise taotlusi esitada. Hankige järgmine link ja looge oma projekt.

https: // konsool.arendajad.google.com

Google'i projekti seadistamine

Pärast projekti loomist minge projekti ja valige vasakpoolsest menüüst „OAuthi nõusoleku ekraan”.

Klõpsake nuppu „Loo“ ja sisestage kõik oma projekti üksikasjad. Edasi liikumiseks klõpsake nuppu „Salvesta ja jätka“.

Nüüd esitage oma projekti ulatus. Reguleerimisala on kasutaja andmetele Google'i kontolt juurdepääsu lubade tüüp. Google'i kontolt konkreetsete kasutajaandmete saamiseks peate seadistama õigused. Klõpsake nuppu „Salvesta ja jätka.”

Kui soovite, lisage nüüd projekti testkasutajad. Testkasutajad on ainsad lubatud kasutajad, kes pääsevad teie veebirakendusele juurde testimisrežiimis. Praegu ei sisesta me ühtegi testkasutajat ja klõpsake projekti kokkuvõtte lehele liikumiseks nuppu "Salvesta ja jätka".

Vaadake oma projekt kokkuvõtte lehel üle ja salvestage konfiguratsioon. Nüüd loome oma projekti jaoks volitused. Valige vasakpoolses menüüs vahekaart 'Volitused' ja klõpsake OAuth 2 loomiseks ülaservas nuppu 'Loo mandaadid'.0 kliendi ID-d.

Valige rippmenüüst „OAuthi kliendi ID” ja määrake rakenduse tüübiks „Veebirakendus” ja oma rakenduse nimi.

Samal lehel peame esitama kaks URI-d, „Volitatud Javascripti lähtekohad” ja „Volitatud ümbersuunamis-URI-d”. „Volitatud javascripti päritolu” on teie veebirakenduse HTTP-päritolu ja sellel ei saa olla ühtegi teed. „Volitatud ümbersuunamise URI-d” on täpne URI koos teega, kuhu kasutaja pärast Google'i autentimist suunatakse.

Pärast kõigi vajalike kirjete sisestamist klõpsake OAuthi mandaatide loomiseks nuppu „Loo“.

Sõlme algatamine.js Projekt

Siiani oleme loonud Google'i projekti, et volitada kasutajaid meie rakenduse jaoks Google'i abil. Nüüd algatame sõlme.js projekt oauthi rakendamiseks. Looge kataloog nimega „auth“ ja algatage ekspressprojekt.

[meiliga kaitstud]: ~ $ mkdir auth
[meiliga kaitstud]: ~ $ cd autentimine
[meiliga kaitstud]: ~ $ npm init -y

Nõutavate npm pakettide installimine

Google OAuthi juurutamiseks sõlme abil.js, peame installima mõned npm paketid. Kasutame „pass”, „express”, „path” ja „passport-google-oauth20”. Installige need paketid, kasutades npm.

[meiliga kaitstud]: ~ $ npm installi kiire passi pass-google-oauth20 tee

Sõlme kirjutamine.js kood

Kõigepealt kirjutame kaks lihtsat HTML-veebilehte, ühe nupuga ja volitame kasutaja nupule klõpsates. Teine leht autoriseeritakse ja kasutaja suunatakse pärast volitamist volitatud lehele. Looge fail 'public / index.html '.



OAuth


Volitage siin

Nüüd looge fail 'public / success.html 'järgmise sisuga.



OAuth


Volitatud



Pärast veebilehtede loomist kirjutame nüüd koodi, et volitada kasutajaid kasutama google oauthi. Loo faili register.js '.

// vajalike pakettide importimine
const väljendada = nõuda ('väljendada');
const pass = nõuda ('pass');
const tee = nõudma ('tee');
const GoogleStrategy = required ('passport-google-oauth20').Strateegia;
const rakendus = ekspress ();
// parameetrite määratlemine
// kliendi ID on parameeter, mille saame Google'i arendajakonsoolilt
KLIENT_ID = ”xxxxxxx”;
// kliendisaladus võetakse ka google'i arendajakonsoolilt
KLIENDI_SEKRET = ”xxxxx”;
// kasutaja suunatakse pärast autoriseerimist saidile CALLBACK_URL
CALLBACK_URL = ”http: // localhost: 8000 / volitatud”;
// pordi number peab olema sama, mis on määratletud arendajakonsoolis
SADAM = 8000;
// passi vahevara seadistamine
rakendus.kasutamine (pass.lähtestama ());
rakendus.kasutamine (pass.seanss ());
pass.serializeUser (funktsioon (id, valmis)
tehtud (null, id);
);
pass.deserializeUser (funktsioon (id, valmis)
tehtud (null, id);
);
// järgmine vahevara töötab alati kui pass. Autentimise meetod kutsutakse ja see tagastab erinevad reguleerimisalas määratletud parameetrid.
pass.use (uus GoogleStrategy (
kliendi ID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
callbackURL: CALLBACK_URL
,
asünkroonimisfunktsioon (accessToken, refreshToken, profiil, e-post, cb)
tagastage cb (null, e-post.id);

));
// rakenduse avalehe serveerimine
rakendus.saada ('/', (req, res) =>

res.sendFile (tee.liitu (__ dirname + '/ public / register.html '));
);
// rakenduse edulehe serveerimine
rakendus.get ('/ edu', (req, res) =>

res.sendFile (tee.liitu (__ dirname + '/ public / success.html '));
);
// kasutaja suunatakse google auth lehele, kui ta tabab marsruuti '/ google / auth'.
rakendus.get ('/ google / auth',
pass.autentimine ('google', ulatus: ['profiil', 'email'])
);
// autentimisvea ümbersuunamine on määratletud järgmisel marsruudil
rakendus.get ('/ volitatud',
pass.autentimine ('google', FailRedirect: '/'),
(req, res) =>

res.ümbersuunamine ('/ õnnestumine');

);
// töötab server
rakendus.kuulata (PORT, () =>

konsool.logi („Server töötab pordis” + PORT)
)

Google OAuthi testimine

Nüüd on meie rakendus valmis ja saame testida, kas see volitab Google oauthi kasutavaid kasutajaid. Minge juurkataloogi ja käivitage rakendus.

[meiliga kaitstud]: ~ $ sõlme register.js

Nüüd sisestage brauserisse oma rakenduse URL.

http: // localhost: 8000

See näitab avalehte koos ankrumärgendiga.

Kui klõpsame nuppu 'Volita siin', suunab see lehe google oauth.

Teie rakenduse nimi „Test” kuvatakse Google'i autentimislehel. Kui volitate oma kontot, viib see teid volitatud lehele.

Järeldus

Erinevate veebirakenduste kasutajanimede ja paroolide haldamine pole kasutajate jaoks õnnelik ülesanne. Paljud kasutajad lahkuvad teie veebirakendusest oma kontot registreerimata lihtsalt seetõttu, et nad ei soovi mandaate hallata. Teie veebirakenduse või veebisaidi autoriseerimisprotsessi saab lihtsustada, kasutades kolmandate osapoolte teenuseid, nagu Google, Facebook jne. Need teenused volitavad kasutajaid nende nimel ja kasutaja ei pea mandaate eraldi haldama. Selles artiklis oleme rakendanud Google oauth -protokolli, et anda kasutajatele luba Node'i kasutamiseks.js.

Kasulikud tööriistad Linuxi mängijatele
Kui teile meeldib Linuxis mänge mängida, on tõenäoline, et olete mängukogemuse parandamiseks kasutanud selliseid rakendusi ja utiliite nagu Wine, Lutr...
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...
Kuidas kasutada AutoKeyt Linuxi mängude automatiseerimiseks
AutoKey on Linuxi ja X11 töölaua automatiseerimise utiliit, mis on programmeeritud Python 3, GTK ja Qt. Selle skriptimise ja MACRO funktsionaalsuse ab...