NodeJS

Jak autorizovat uživatele pomocí Google OAuth v uzlu.js

Jak autorizovat uživatele pomocí Google OAuth v uzlu.js

Otevřená autorizace, známá také jako OAuth, je protokol používaný k autorizaci uživatele na vašem webu pomocí některé služby třetí strany, jako je Google, Github, Facebook atd. Služba třetí strany sdílí některá data (jméno, e-mail, profilový obrázek atd.) s vaším webem a poté autorizuje uživatele jeho jménem, ​​aniž by spravoval hesla a uživatelská jména pro váš web a ušetřil uživatelům spoustu dalších potíží.

Jak funguje OAuth

Když uživatel klikne na „Přihlásit se pomocí Google“, přesměruje ho na stránku se souhlasem Google OAuth. Když uživatel souhlasí se souhlasem a ověří svou totožnost na Googlu, Google kontaktuje váš web jako službu třetí strany a autorizuje uživatele jeho jménem a sdílí s ním data na vašem webu. Tímto způsobem lze uživatele autorizovat, aniž by musel samostatně spravovat přihlašovací údaje pro svůj web.

Implementace Google OAuth pomocí Node.js

Téměř všechny programovací jazyky poskytují různé knihovny pro implementaci google oauth k autorizaci uživatelů. Uzel.js poskytuje knihovny 'passport' a 'passport-google-oauth20' pro implementaci google oauth. V tomto článku implementujeme protokol OAuth k autorizaci uživatelů k použití uzlu.js.

Vytvořte projekt na Googlu

Prvním krokem k implementaci Google OAuth je vytvoření projektu v konzole pro vývojáře Google pro váš web. Tento projekt se používá k získání klíčů API použitých k zadávání žádostí o otevřené ověření společnosti Google. Přejděte na následující odkaz a vytvořte svůj projekt.

https: // konzole.vývojáři.Google.com

Konfigurace projektu Google

Po vytvoření projektu přejděte do projektu a v nabídce na levé straně vyberte „Obrazovka souhlasu s OAuth“.

Klikněte na tlačítko „vytvořit“ a uveďte všechny podrobnosti svého projektu. Pokračujte kliknutím na tlačítko „Uložit a pokračovat“.

Nyní uveďte rozsah svého projektu. Rozsahy jsou typy oprávnění pro přístup k datům uživatele z účtu Google. Chcete-li ze svého účtu Google získat konkrétní uživatelská data, musíte nastavit oprávnění. Klikněte na „Uložit a pokračovat.“

Nyní přidejte testovací uživatele do projektu, pokud chcete. Testovací uživatelé jsou jedinými povolenými uživateli, kteří mají přístup k vaší webové aplikaci v testovacím režimu. Prozatím nezadáme žádného testovacího uživatele a kliknutím na „Uložit a pokračovat“ přejdeme na souhrnnou stránku projektu.

Zkontrolujte svůj projekt na stránce souhrnu a uložte konfiguraci. Nyní vygenerujeme pověření pro náš projekt. V levé nabídce vyberte kartu Pověření a kliknutím na tlačítko Vytvořit pověření nahoře vygenerujte OAuth 2.0 ID klientů.

Z rozbalovací nabídky vyberte „ID klienta OAuth“ a zadejte typ aplikace jako „Webová aplikace“ a název vaší aplikace.

Na stejné stránce musíme uvést dva URI, „Authorized Javascript Origins“ a „Authorized redirect URIs“. „Autorizovaný původ javascriptů“ je původ HTTP vaší webové aplikace a nemůže mít žádnou cestu. „Autorizované přesměrování URI“ je přesný URI s cestou, na kterou bude uživatel po autentizaci google přesměrován.

Po zadání všech požadovaných položek klikněte na 'vytvořit' a vytvořte pověření OAuth.

Zahajovací uzel.js projekt

Dosud jsme vytvořili projekt google, který autorizuje uživatele pro naši aplikaci pomocí google. Nyní budeme inicializovat uzel.js projekt implementovat oauth. Vytvořte adresář s názvem 'auth' a spusťte expresní projekt.

[chráněno e-mailem]: ~ $ mkdir auth
[chráněno e-mailem]: ~ $ cd ověř
[chráněno e-mailem]: ~ $ npm init -y

Instalace požadovaných balíčků npm

Implementovat Google OAuth pomocí uzlu.js, musíme nainstalovat nějaké balíčky npm. Použijeme „pas“, „expres“, „cesta“ a „pas-google-oauth20“. Nainstalujte tyto balíčky pomocí npm.

[chráněno e-mailem]: ~ $ npm instalace expresního pasu pasport-google-oauth20 cesta

Psací uzel.js kód

Nejprve napíšeme dvě jednoduché html webové stránky, jednu s tlačítkem, a autorizujeme uživatele po kliknutí na tlačítko. Druhá stránka bude autorizována a uživatel bude po autorizaci přesměrován na autorizovanou stránku. Vytvořte soubor 'public / index.html '.



OAuth


Autorizovat zde

Nyní vytvořte soubor 'public / success.html 's následujícím obsahem.



OAuth


Autorizovaný



Po vytvoření webových stránek nyní napíšeme kód, který uživatelům povolí používat google oauth. Vytvořte rejstřík souborů.js '.

// import požadovaných balíčků
const express = require ('express');
const passport = require ('pas');
const path = require ('cesta');
const GoogleStrategy = require ('passport-google-oauth20').Strategie;
const app = express ();
// definování parametrů
// ID klienta je parametr, který získáme z konzoly pro vývojáře Google
CLIENT_ID = ”xxxxxxx”;
// tajný klíč klienta bude také převzat z vývojářské konzole google
CLIENT_SECRET = ”xxxxx”;
// uživatel bude po autorizaci přesměrován na CALLBACK_URL
CALLBACK_URL = ”http: // localhost: 8000 / autorizovaný”;
// číslo portu musí být stejné, jak je definováno ve vývojářské konzoli
PORT = 8000;
// konfigurace middlewaru pasu
aplikace.použití (pas.initialize ());
aplikace.použití (pas.zasedání());
cestovní pas.serializeUser (funkce (id, hotovo)
hotovo (null, id);
);
cestovní pas.deserializeUser (funkce (id, hotovo)
hotovo (null, id);
);
// následující middleware bude spuštěn vždy, když bude vydán pas. Volá se metoda Authenticate a vrací různé parametry definované v oboru.
cestovní pas.použít (nová GoogleStrategy (
clientID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
callbackURL: CALLBACK_URL
,
asynchronní funkce (accessToken, refreshToken, profil, e-mail, CB)
vrátit cb (null, e-mail.id);

));
// poskytování domovské stránky aplikace
aplikace.get ('/', (req, res) =>

res.sendFile (cesta.join (__ dirname + '/ public / index.html '));
);
// poskytování stránky úspěchu aplikace
aplikace.get ('/ success', (req, res) =>

res.sendFile (cesta.připojit (__ dirname + '/ public / success.html '));
);
// uživatel bude přesměrován na stránku google auth, kdykoli narazí na cestu „/ google / auth“.
aplikace.get ('/ google / auth',
cestovní pas.ověřit ('google', scope: ['profil', 'e-mail'])
);
// přesměrování selhání autentizace je definováno v následující trase
aplikace.získat ('/ autorizované',
cestovní pas.ověřit ('google', failureRedirect: '/'),
(požadavek, res) =>

res.redirect ('/ success');

);
// běžící server
aplikace.poslouchat (PORT, () =>

řídicí panel.protokol („Server běží na portu“ + PORT)
)

Testování Google OAuth

Nyní je naše aplikace připravena a můžeme otestovat, zda autorizuje uživatele pomocí google oauth. Přejděte do kořenového adresáře a spusťte aplikaci.

[chráněno e-mailem]: ~ $ index uzlů.js

Nyní zadejte adresu URL své aplikace do prohlížeče.

http: // localhost: 8000

Zobrazuje domovskou stránku s kotevní značkou.

Když klikneme na „Autorizovat zde“, bude přesměrováno na stránku google oauth.

Název vaší aplikace „Test“ se zobrazí na stránce ověřování Google. Když autorizujete svůj účet, dostanete se na autorizovanou stránku.

Závěr

Správa uživatelských jmen a hesel pro různé webové aplikace není pro uživatele šťastným úkolem. Mnoho uživatelů opustí vaši webovou aplikaci bez registrace svého účtu jen proto, že nechtějí spravovat přihlašovací údaje. Proces autorizace ve vaší webové aplikaci nebo na webu lze zjednodušit pomocí služeb třetích stran, jako je Google, Facebook atd. Tyto služby autorizují uživatele jejich jménem a uživatel nemusí spravovat přihlašovací údaje samostatně. V tomto článku jsme implementovali protokol google oauth k autorizaci uživatelů k použití uzlu.js.

WinMouse vám umožňuje přizpůsobit a vylepšit pohyb ukazatele myši na PC s Windows
Chcete-li vylepšit výchozí funkce ukazatele myši, použijte freeware WinMouse. Přidává další funkce, které vám pomohou vytěžit ze své skromné ​​myši ma...
V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...