Šī bibliotēka ļauj nemanāmi integrēt Google autentifikāciju savā Next.js lietojumprogrammā, novēršot nepieciešamību to izstrādāt no nulles.
Drošas autentifikācijas sistēmas integrēšana ir būtisks attīstības solis, kas ne tikai nodrošina drošu vidi lietotājiem, bet arī veicina uzticību jūsu produktam. Šī sistēma nodrošina viņu datu aizsardzību un to, ka lietojumprogrammai var piekļūt tikai pilnvarotas personas.
Drošas autentifikācijas izveide no paša sākuma var būt laikietilpīgs process, kas prasa rūpīgu darbu izpratne par autentifikācijas protokoliem un procesiem, īpaši, strādājot ar dažādu autentifikāciju pakalpojumu sniedzēji.
Izmantojot NextAuth, varat koncentrēties uz galveno funkciju izveidi. Lasiet tālāk, lai uzzinātu, kā integrēt Google sociālo pieteikšanos savā lietojumprogrammā, izmantojot NextAuth.
Kā darbojas NextAuth
NextAuth.js ir atvērtā pirmkoda autentifikācijas bibliotēka, kas vienkāršo pievienošanas procesu autentifikācija un autorizācija funkcionalitāti Next.js lietojumprogrammām, kā arī autentifikācijas darbplūsmu pielāgošanu. Tas nodrošina virkni funkciju, piemēram, e-pastu, bezparoles autentifikāciju un atbalstu dažādiem autentifikācijas nodrošinātājiem, piemēram, Google, GitHub un citiem.
Augstā līmenī NextAuth darbojas kā starpprogrammatūra, atvieglojot autentifikācijas procesu starp jūsu lietojumprogrammu un pakalpojumu sniedzēju. Zem pārsega, kad lietotājs mēģina pieteikties, viņš tiek novirzīts uz Google pierakstīšanās lapu. Pēc veiksmīgas autentifikācijas Google atgriež lietderīgo kravu, kas ietver lietotāja datus, piemēram, vārdu un e-pasta adresi. Šie dati tiek izmantoti, lai autorizētu piekļuvi lietojumprogrammai un tās resursiem.
Izmantojot lietderīgās slodzes datus, NextAuth izveido sesiju katram autentificētajam lietotājam un saglabā sesijas pilnvaru drošā tikai HTTP sīkfailā. Sesijas marķieris tiek izmantots, lai pārbaudītu lietotāja identitāti un saglabātu viņa autentifikācijas statusu. Šis process attiecas arī uz citiem pakalpojumu sniedzējiem ar nelielām atšķirībām ieviešanā.
Reģistrējiet savu Next.js lietojumprogrammu Google izstrādātāja konsolē
NextAuth nodrošina atbalstu Google autentifikācijas pakalpojumam. Tomēr, lai jūsu lietojumprogramma mijiedarbotos ar Google API un ļautu lietotājiem autentificēties ar viņu Google akreditācijas datus, jums būs jāreģistrē sava lietotne Google izstrādātāja konsolē un iegūt a Klienta ID un Klienta noslēpums.
Lai to izdarītu, dodieties uz Google izstrādātāja konsole. Pēc tam pierakstieties savā Google kontā, lai piekļūtu konsolei. Kad esat pieteicies, izveidojiet jaunu projektu.
Projekta pārskata lapā atlasiet API un pakalpojumi cilni pakalpojumu sarakstā kreisajā izvēlņu rūtī un visbeidzot Akreditācijas dati opciju.
Noklikšķiniet uz Izveidojiet akreditācijas datus pogu, lai ģenerētu savu klienta ID un klienta noslēpumu. Pēc tam no norādītajām opcijām norādiet lietojumprogrammas veidu un pēc tam norādiet lietojumprogrammas nosaukumu.
Pēc tam norādiet savas lietotnes mājas maršruta URL un visbeidzot norādiet savai lietojumprogrammai autorizēto novirzīšanas URI. Šajā gadījumā tam vajadzētu būt http://localhost: 3000/api/auth/callback/google kā norādīts NextAuth Google pakalpojumu sniedzēja iestatījumos.
Pēc veiksmīgas reģistrācijas Google nodrošinās jums klienta ID un klienta noslēpumu, ko izmantot jūsu lietotnē.
Iestatiet NextJS lietojumprogrammu
Lai sāktu, izveidojiet Next.js projektu lokāli:
npx Create-next-app next-auth-app
Kad iestatīšana ir pabeigta, dodieties uz jaunizveidoto projektu direktoriju un palaidiet šo komandu, lai atvērtu izstrādes serveri.
npm palaist dev
Atveriet pārlūkprogrammu un dodieties uz http://localhost: 3000. Tam vajadzētu būt gaidītajam rezultātam.
Jūs varat atrast šī projekta kodu tajā GitHub repozitorijs.
.env faila iestatīšana
Sava projekta saknes mapē izveidojiet jaunu failu un piešķiriet tam nosaukumu .env lai saglabātu savu klienta ID, noslēpumu un pamata URL.
NEXT_PUBLIC_GOOGLE_CLIENT_ID= 'klienta ID'
NEXT_PUBLIC_GOOGLE_CLIENT_SECRET= 'noslēpums'
NEXT_PUBLIC_NEXTAUTH_URL= ' http://localhost: 3000'
NextAUTH URL tiek izmantots, lai norādītu jūsu lietojumprogrammas pamata URL, kas tiek izmantots lietotāju novirzīšanai pēc autentifikācijas pabeigšanas.
Integrējiet NextAuth savā Next.js lietojumprogrammā
Vispirms savā projektā instalējiet NextAuth bibliotēku.
npm instalēt nākamo autorizāciju
Tālāk, sadaļā /pages direktorijā, izveidojiet jaunu mapi un piešķiriet tai nosaukumu api. Mainiet direktoriju uz api mapi un izveidojiet citu mapi ar nosaukumu aut. Autentēšanas mapē pievienojiet jaunu failu un piešķiriet tam nosaukumu [...nextauth].js un pievienojiet šādas koda rindas.
imports NākamaisAuth no"next-ath/next";
imports GoogleProvider no"next-auth/providers/google";
eksportētnoklusējuma NextAuth({
pakalpojumu sniedzēji:[
GoogleProvider({
klienta ID: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_ID,
klienta noslēpums: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_SECRET,
}),
]
});
Šis kods konfigurē Google kā autentifikācijas nodrošinātāju. Funkcija NextAuth definē Google nodrošinātāja konfigurācijas objektu, kurā ir divi rekvizīti: klienta ID un klienta noslēpums, kas inicializē nodrošinātāju.
Pēc tam atveriet pages/_app.js failu un veiciet šādas izmaiņas kodā.
imports"../styles/globals.css"
imports { SessionProvider } no"next-ath/react"
funkcijuMyApp({ Component, pageProps: { session, ...pageProps } }) {
atgriezties (
</SessionProvider>
)
}
eksportētnoklusējuma MyApp
NextAuth's SessionProvider komponents nodrošina autentifikācijas stāvokļa pārvaldības funkcionalitāti lietotnei Next.js. Tas aizņem a sesija prop, kas satur autentifikācijas sesijas datus, kas atgriezti no Google API, kas ietver lietotāja informāciju, piemēram, ID, e-pastu un piekļuves pilnvaru.
Iesaiņojot MyApp komponents ar SessionProvider komponentu, ir pieejams autentifikācijas sesijas objekts ar lietotāja informāciju visā lietojumprogrammā, ļaujot lietojumprogrammai saglabāt un renderēt lapas, pamatojoties uz to autentifikācijas stāvokli.
Konfigurējiet failu index.js
Atveriet pages/index.js failu, izdzēsiet standarta kodu un pievienojiet tālāk norādīto kodu, lai izveidotu pieteikšanās pogu, kas novirza lietotājus uz pieteikšanās lapu.
imports Galva no"nākamais/galva"
imports stilus no"../styles/Home.module.css"
imports { useRouter } no'next/router';eksportētnoklusējumafunkcijuMājas() {
konst maršrutētājs = useRouter();
atgriezties (
Izveidot nākamo lietotni</title>
"description" content="Izveidots, izveidojot nākamo lietotni" />
"icon" href="/favicon.ico" />
</Head>
Laipni lūdzam " https://nextjs.org">Next.js!</a>
</h1>
Sāciet darbu, pierakstoties{' ' }
ar jūsu Google kontu</code>
</div>
)
}
Šis kods izmanto Next.js useRouter āķi, lai apstrādātu maršrutēšanu lietojumprogrammā, definējot maršrutētāja objektu. Kad tiek noklikšķināts uz pieteikšanās pogas, apdarinātāja funkcija izsauc metodi router.push, lai novirzītu. lietotājam uz pieteikšanās lapu.
Izveidot pieteikšanās autentifikāciju Lapa
Katalogā lapas izveidojiet jaunu failu Login.js, pēc tam pievienojiet šādas koda rindiņas.
importēt { useSession, signIn, signOut } no "next-auth/react"
importēt { useRouter } no 'next /router';
importēt stilus no '../styles/Login.module.css'eksportēt noklusējuma funkcija < span>Pieteikšanās() {
const { data: sesija } = useSession()
const router = useRouter();
if (sesija) {
return (
"title">Izveidot nākamo lietotni</h1>
Parakstīts < span>in kā {session.user.email}
</h2>