See teek võimaldab teil integreerida Google'i autentimise sujuvalt oma Next.js-i rakendusse, välistades vajaduse seda nullist arendada.
Turvalise autentimissüsteemi integreerimine on oluline arendusetapp, mis mitte ainult ei paku kasutajatele turvalist keskkonda, vaid sisendab ka usaldust teie toote vastu. See süsteem tagab, et nende andmed on kaitstud ja rakendusele pääsevad juurde ainult volitatud isikud.
Turvalise autentimise loomine algusest peale võib olla aeganõudev protsess, mis nõuab põhjalikku uurimist autentimisprotokollide ja -protsesside mõistmine, eriti erinevate autentimiste käsitlemisel pakkujad.
NextAuthi abil saate keskenduda põhifunktsioonide loomisele. Lugege edasi, et saada teavet selle kohta, kuidas integreerida NextAuthi abil oma rakendusse Google'i sotsiaalne sisselogimine.
Kuidas NextAuth töötab
NextAuth.js on avatud lähtekoodiga autentimise teek, mis lihtsustab lisamise protsessi autentimine ja autoriseerimine funktsionaalsust Next.js rakendustele ning autentimise töövoogude kohandamist. See pakub mitmesuguseid funktsioone, nagu e-post, paroolita autentimine ja tugi erinevatele autentimisteenuse pakkujatele, nagu Google, GitHub ja palju muud.
Kõrgel tasemel toimib NextAuth vahevarana, hõlbustades teie rakenduse ja teenusepakkuja vahelist autentimisprotsessi. Kapoti all, kui kasutaja proovib sisse logida, suunatakse ta Google'i sisselogimislehele. Eduka autentimise korral tagastab Google kasuliku koormuse, mis sisaldab kasutaja andmeid, nagu tema nimi ja e-posti aadress. Neid andmeid kasutatakse rakendusele ja selle ressurssidele juurdepääsu lubamiseks.
Kasuliku koormuse andmeid kasutades loob NextAuth iga autentitud kasutaja jaoks seansi ja salvestab seansimärgi turvalises HTTP-küpsises. Seansimärki kasutatakse kasutaja identiteedi kontrollimiseks ja tema autentimisoleku säilitamiseks. See protsess kehtib ka teiste pakkujate puhul, mille juurutamine on veidi erinev.
Registreerige oma Next.js rakendus Google'i arendajakonsoolis
NextAuth toetab Google'i autentimisteenust. Kuid selleks, et teie rakendus suhtleks Google'i API-dega ja võimaldaks kasutajatel autentida nende Google'i mandaadid, peate registreerima oma rakenduse Google'i arendajakonsoolis ja saada a Kliendi ID ja Kliendi saladus.
Selleks navigeerige saidile Google'i arendajakonsool. Järgmisena logige konsoolile juurdepääsuks oma Google'i kontoga sisse. Pärast sisselogimist looge uus projekt.
Valige projekti ülevaatelehel API-d ja teenused vasakpoolsel menüüpaanil olevast teenuste loendist vahekaarti ja lõpuks Mandaat valik.
Klõpsake nuppu Loo mandaadid nuppu, et luua oma kliendi ID ja kliendi saladus. Järgmiseks määrake antud valikute hulgast rakenduse tüüp ja seejärel andke oma rakendusele nimi.
Seejärel määrake oma rakenduse kodumarsruudi URL ja lõpuks määrake oma rakenduse jaoks volitatud ümbersuunamise URI. Sel juhul peaks see olema http://localhost: 3000/api/auth/callback/google nagu on määratud NextAuthi Google'i pakkuja seadetes.
Pärast edukat registreerimist annab Google teile rakenduses kasutamiseks kliendi ID ja kliendi saladuse.
Seadistage rakendus NextJS
Alustamiseks looge Next.js projekt kohapeal:
npx create-next-app next-auth-app
Pärast häälestuse lõpetamist liikuge äsja loodud projektikataloogi ja käivitage see käsk arendusserveri käivitamiseks.
npm käivita dev
Avage brauser ja navigeerige saidile http://localhost: 3000. See peaks olema oodatud tulemus.
Selle projekti koodi leiate sellest GitHubi hoidla.
Env-faili seadistamine
Looge oma projekti juurkaustas uus fail ja pange sellele nimi .env et hoida oma kliendi ID-d, saladust ja põhi-URL-i.
NEXT_PUBLIC_GOOGLE_CLIENT_ID= "kliendi ID"
NEXT_PUBLIC_GOOGLE_CLIENT_SECRET= 'saladus'
NEXT_PUBLIC_NEXTAUTH_URL= ' http://localhost: 3000'
NextAUTH URL-i kasutatakse teie rakenduse baas-URL-i määramiseks, mida kasutatakse kasutajate ümbersuunamiseks pärast autentimise lõpetamist.
Integreerige NextAuth oma Next.js-i rakendusse
Esmalt installige oma projekti NextAuthi teek.
npm install next-auth
Järgmisena /pages kataloogi, looge uus kaust ja andke sellele nimi api. Muutke kataloogiks api kaust ja looge uus kaust nimega aut. Lisage autentimiskaustas uus fail ja pange sellele nimi [...nextauth].js ja lisage järgmised koodiread.
importida JärgmineAuth alates"next-auth/next";
importida GoogleProvider alates"next-auth/providers/google";
eksportidavaikimisi NextAuth({
pakkujad:[
GoogleProvider({
kliendi ID: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_ID,
clientSecret: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_SECRET,
}),
]
});
See kood konfigureerib Google'i autentimise pakkujaks. Funktsioon NextAuth määrab Google'i pakkuja konfiguratsiooniobjekti, mis võtab enda alla kaks atribuuti: kliendi ID ja kliendi saladus, mis lähtestab pakkuja.
Järgmisena avage pages/_app.js faili ja tehke koodis järgmised muudatused.
importida"../styles/globals.css"
importida { Session Provider } alates"järgmine autentimine/reageerimine"
funktsiooniMinuApp({ Component, pageProps: { session, ...pageProps } }) {
tagasi (
</SessionProvider>
)
}
eksportidavaikimisi MinuApp
NextAuth's Seansipakkuja komponent pakub rakendusele Next.js autentimisoleku haldusfunktsiooni. See võtab a istungil prop, mis sisaldab Google'i API-lt tagastatud autentimisseansi andmeid, mis hõlmavad kasutaja üksikasju, nagu nende ID, e-posti aadress ja juurdepääsuluba.
Pakkides MinuApp komponendiga SessionProvider, tehakse kättesaadavaks autentimisseansi objekt koos kasutaja üksikasjadega kogu rakenduse ulatuses, võimaldades rakendusel püsida ja renderdada lehti nende autentimisoleku põhjal.
Seadistage fail index.js
Ava pages/index.js faili, kustutage standardkood ja lisage allolev kood, et luua sisselogimisnupp, mis suunab kasutajad sisselogimislehele.
importida Pea alates'järgmine/pea'
importida stiilid alates'../styles/Home.module.css'
importida { useRouter } alates'järgmine/ruuter';eksportidavaikimisifunktsiooniKodu() {
konst ruuter = userRouter();
tagasi (
Loo järgmine rakendus</title>
"description" content="Loodud järgmise rakenduse loomisega" />
"icon" href="/favicon.ico" />
</Head>
Tere tulemast " https://nextjs.org">Next.js!</a>
</h1>
Alustamiseks logige sisse{'' }
koos teie Google'i kontoga</code>
</div>
)
}
See kood kasutab konksu Next.js useRouter, et hallata rakenduses marsruutimist, määratledes ruuteri objekti. Kui klõpsate sisselogimisnupul, kutsub töötleja funktsioon ümbersuunamiseks meetodi router.push kasutaja sisselogimislehele.
Loo sisselogimise autentimine Lehekülg
Looge kataloogis pages uus fail Login.js, seejärel lisage järgmised koodiread.
import { useSession, signIn, signOut } alates "next-auth/react"
import { useRouter } from 'next /ruuter';
impordi stiilid kohast '../styles/Login.module.css'eksport vaikeseade funktsioon < span>Sisselogimine() {
const { andmed: seanss } = useSession()
const ruuter = userRouter();
if (session) {
return (
"title">Loo järgmine rakendus</h1>
Allkirjastatud < span>in as {session.user.email}
</h2>