Az Open Authorization, más néven OAuth, egy protokoll, amelyet egy webhelyen lévő felhasználó engedélyezésére használnak harmadik féltől származó szolgáltatásokkal, például a Google, a Github, a Facebook stb. A harmadik fél szolgáltatása megoszt bizonyos adatokat (név, e-mail cím, profilkép stb.).) az Ön webhelyével, majd a felhasználó nevében engedélyezi a felhasználót anélkül, hogy kezelné a webhely jelszavát és felhasználónevét, és sok további problémát takarít meg a felhasználóknak.
Hogyan működik az OAuth
Amikor a felhasználó a „Bejelentkezés a Google-val” gombra kattint, a felhasználó a Google OAuth hozzájárulási oldalára kerül. Amikor a felhasználó elfogadja a beleegyezést és hitelesíti személyazonosságát a Google-on, a Google felveszi a kapcsolatot az Ön weboldalával, mint harmadik fél szolgáltatásával, és felhatalmazza a felhasználót a nevében, és megoszt bizonyos adatokat az Ön webhelyével. Ily módon a felhasználó engedélyezhető anélkül, hogy külön kezelné a webhely hitelesítő adatait.
A Google OAuth megvalósítása a Node használatával.js
Szinte az összes programozási nyelv különböző könyvtárakat kínál a google oauth megvalósításához a felhasználók engedélyezéséhez. Csomópont.js 'passport' és 'passport-google-oauth20' könyvtárakat biztosít a google oauth megvalósításához. Ebben a cikkben megvalósítunk egy oauth protokollt, amely felhatalmazza a felhasználókat a csomópont használatára.js.
Hozzon létre egy projektet a Google-on
A Google OAuth bevezetésének első lépése egy projekt létrehozása a webhely fejlesztői konzolján. Ezt a projektet arra használják, hogy az API kulcsokat felhasználják nyílt hitelesítés iránti kérelmek benyújtására a Google számára. Nyissa meg a következő linket, és hozza létre a projektjét.
https: // konzol.fejlesztők.Google.com
A Google Project konfigurálása
A projekt létrehozása után lépjen be a projektbe, és válassza a bal oldali menüből az „OAuth beleegyezés képernyőjét”.
Kattintson a "létrehozás" gombra, és adja meg a projekt minden részletét. Kattintson a „Mentés és folytatás” gombra a továbblépéshez.
Most adja meg a projekt terjedelmét. A hatókörök azok a jogosultságok, amelyek lehetővé teszik a felhasználó adatainak elérését egy Google-fiókból. Be kell állítania az engedélyeket, hogy konkrét felhasználói adatokat kapjon a Google-fiókjából. Kattintson a „Mentés és folytatás” gombra.”
Ha akarja, adja hozzá a tesztfelhasználókat a projekthez. A tesztfelhasználók az egyetlen engedélyezett felhasználók, akik Teszt módban férhetnek hozzá az Ön webalkalmazásához. Egyelőre nem írunk be egyetlen tesztelő felhasználót sem, és a „Mentés és folytatás” gombra kattintva léphetünk a projekt összefoglaló oldalára.
Tekintse át a projektet az összefoglaló oldalon, és mentse a konfigurációt. Most generálunk hitelesítő adatokat a projektünkhöz. Válassza ki a 'Hitelesítő adatok' fület a bal oldali menüben, majd kattintson az "A hitelesítő adatok létrehozása" gombra a tetején az OAuth 2 előállításához.0 ügyfél-azonosító.
A legördülő menüből válassza az „OAuth ügyfél-azonosító” lehetőséget, és adja meg az alkalmazás típusát „Webalkalmazás” néven, valamint az alkalmazás nevét.
Ugyanazon az oldalon két URI-t kell megadnunk, az „Engedélyezett Javascript eredeteket” és az „Engedélyezett átirányítási URI-kat”. Az "Engedélyezett javascript eredetek" az Ön webalkalmazásának HTTP-eredete, és nem tartalmazhat útvonalat. Az „Engedélyezett átirányítási URI-k” az a pontos URI, amelynek elérési útja a felhasználót átirányítja a google hitelesítés után.
Miután megadta az összes szükséges bejegyzést, kattintson a "létrehozás" gombra az OAuth hitelesítő adatok létrehozásához.
Kezdő csomópont.js Projekt
Eddig hoztunk létre egy google projektet, hogy engedélyezzük a felhasználókat a google használatával az alkalmazásunkhoz. Most a csomópontot fogjuk kezdeményezni.js projekt az oauth megvalósítására. Hozzon létre egy 'auth' nevű könyvtárat, és indítsa el az expressz projektet.
[e-mail védett]: ~ $ mkdir hitelesítés[e-mail védett]: ~ $ cd hitelesítés
[e-mail védett]: ~ $ npm init -y
A szükséges npm csomagok telepítése
A Google OAuth megvalósítása csomópont használatával.js, telepítenünk kell néhány npm csomagot. A „passport”, „express”, „path” és „passport-google-oauth20” kifejezéseket fogjuk használni. Telepítse ezeket a csomagokat az npm használatával.
[email protected]: ~ $ npm install express passport passport-google-oauth20 elérési útCsomópont írása.js kód
Először két egyszerű html weboldalt írunk, az egyiket egy gombbal, és felhatalmazzuk a felhasználót, amikor rákattint a gombra. A második oldal jogosult lesz, és a felhasználót az engedélyezés után átirányítják az engedélyezett oldalra. Hozzon létre egy fájlt 'public / index.html '.
Engedélyezzen itt
Most hozzon létre egy fájlt 'public / success.html 'a következő tartalommal.
Felhatalmazott
Weboldalak létrehozása után most kódot írunk, amely felhatalmazza a felhasználókat a google oauth használatára. Hozzon létre egy fájl indexet.js '.
// a szükséges csomagok importálásaconst express = igényel ('express');
const útlevél = megköveteli ('útlevél');
const elérési út = igény ('út');
const GoogleStrategy = igény ('passport-google-oauth20').Stratégia;
const app = express ();
// paraméterek meghatározása
// az ügyfél azonosítója az a paraméter, amelyet a google fejlesztői konzolból kapunk
ÜGYFEL_ID = ”xxxxxxx”;
// az ügyféltitkot a google fejlesztői konzolból is átvesszük
CLIENT_SECRET = ”xxxxx”;
// a felhasználót engedélyezés után átirányítjuk a CALLBACK_URL címre
CALLBACK_URL = ”http: // localhost: 8000 / engedéllyel”;
// a portszámnak meg kell egyeznie a fejlesztői konzolban megadottal
PORT = 8000;
// útlevél köztes szoftver beállítása
kb.használat (útlevél.inicializálni ());
kb.használat (útlevél.ülés());
útlevél.serializeUser (function (id, kész)
kész (null, id);
);
útlevél.deserializeUser (function (id, kész)
kész (null, id);
);
// a következő köztes szoftver futni fog, ha útlevél. A hitelesítési módszer meghívásra kerül, és a hatókörben meghatározott különböző paramétereket ad vissza.
útlevél.use (új GoogleStrategy (
kliensID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
callbackURL: CALLBACK_URL
,
async függvény (accessToken, refreshToken, profil, e-mail, cb)
return cb (null, email.id);
));
// az alkalmazás honlapjának kiszolgálása
kb.get ('/', (req, res) =>
res.sendFile (elérési út.csatlakozás (__ dirname + '/ public / index.html '));
);
// az alkalmazás sikeroldalának kiszolgálása
kb.get ('/ siker', (req, res) =>
res.sendFile (elérési út.csatlakozás (__ dirname + '/ public / siker.html '));
);
// a felhasználót átirányítjuk a google auth oldalra, amikor a '/ google / auth' útvonalra kerül.
kb.get ('/ google / auth',
útlevél.hitelesítés ('google', hatókör: ['profil', 'e-mail'])
);
// a hitelesítési hiba átirányítását a következő útvonal határozza meg
kb.get ('/ engedélyezett',
útlevél.hitelesítés ('google', FailRedirect: '/'),
(req, res) =>
res.átirányítás ('/ siker');
);
// futó szerver
kb.hallgatni (PORT, () =>
konzol.napló („A kiszolgáló a porton fut” + PORT)
)
A Google OAuth tesztelése
Most készen áll az alkalmazásunk, és tesztelhetjük, hogy engedélyezi-e a felhasználókat a google oauth használatával. Menjen a gyökérkönyvtárba, és futtassa az alkalmazást.
[e-mail védett]: ~ $ csomópont index.jsMost írja be az alkalmazás URL-jét a böngészőbe.
http: // localhost: 8000
Megjeleníti a kezdőlapot egy horgonycímkével.
Amikor rákattintunk az "Engedélyezés itt" gombra, az átirányít a google oauth oldalra.
Az alkalmazás neve „Teszt” megjelenik a Google hitelesítési oldalán. Amikor engedélyezi a fiókját, az a felhatalmazott oldalra visz.
Következtetés
A különféle webalkalmazások felhasználóneveinek és jelszavainak kezelése nem elégedett feladat a felhasználók számára. Sok felhasználó elhagyja az internetes alkalmazást anélkül, hogy regisztrálná a fiókját, csak azért, mert nem akarja kezelni a hitelesítő adatokat. Az Ön webalkalmazásán vagy webhelyén az engedélyezési folyamat egyszerűsíthető harmadik fél által nyújtott szolgáltatások, például a Google, a Facebook stb. Használatával. Ezek a szolgáltatások a nevükben engedélyezik a felhasználókat, és a felhasználónak nem kell külön kezelnie a hitelesítő adatokat. Ebben a cikkben a google oauth protokollt valósítottuk meg, hogy felhatalmazzuk a felhasználókat a Node használatára.js.