Tämän kirjaston avulla voit integroida Google-todennuksen saumattomasti Next.js-sovellukseesi, jolloin sitä ei tarvitse kehittää tyhjästä.
Suojatun todennusjärjestelmän integrointi on tärkeä kehitysvaihe, joka ei ainoastaan tarjoa turvallisen ympäristön käyttäjille, vaan myös herättää luottamusta tuotteeseesi. Tämä järjestelmä varmistaa, että heidän tietonsa on suojattu ja että vain valtuutetut henkilöt voivat käyttää sovellusta.
Turvallisen todennuksen rakentaminen alusta alkaen voi olla aikaa vievä prosessi, joka vaatii perusteellisen käsittelyn todennusprotokollien ja -prosessien ymmärtäminen, erityisesti käsiteltäessä erilaisia todennusta tarjoajat.
NextAuthin avulla voit siirtää keskittymisesi ydinominaisuuksien rakentamiseen. Lue lisää, kuinka voit integroida Googlen sosiaalisen kirjautumisen sovellukseesi NextAuthin avulla.
Miten NextAuth toimii
NextAuth.js on avoimen lähdekoodin todennuskirjasto, joka yksinkertaistaa lisäämistä todennus ja valtuutus toimivuus Next.js-sovelluksiin sekä todennustyönkulkujen mukauttaminen. Se tarjoaa erilaisia ominaisuuksia, kuten sähköpostin, salasanattoman todennuksen ja tuen eri todennustarjoajille, kuten Googlelle, GitHubille ja muille.
Korkealla tasolla NextAuth toimii väliohjelmistona, joka helpottaa todennusprosessia sovelluksesi ja palveluntarjoajan välillä. Konepellin alla, kun käyttäjä yrittää kirjautua sisään, hänet ohjataan Googlen kirjautumissivulle. Onnistuneen todennuksen jälkeen Google palauttaa hyötykuorman, joka sisältää käyttäjän tiedot, kuten hänen nimensä ja sähköpostiosoitteensa. Näitä tietoja käytetään valtuuttamaan pääsy sovellukseen ja sen resursseihin.
Hyötykuormatietojen avulla NextAuth luo istunnon jokaiselle todennetulle käyttäjälle ja tallentaa istuntotunnisteen suojattuun vain HTTP-evästeeseen. Istuntotunnusta käytetään käyttäjän henkilöllisyyden tarkistamiseen ja hänen todennustilansa säilyttämiseen. Tämä prosessi koskee myös muita palveluntarjoajia, joiden toteutuksessa on pieniä eroja.
Rekisteröi Next.js-sovelluksesi Google Developer Consolessa
NextAuth tukee Googlen todennuspalvelua. Kuitenkin, jotta sovelluksesi olisi vuorovaikutuksessa Googlen sovellusliittymien kanssa ja salli käyttäjien todennuksen heidän Google-kirjautumistietonsa, sinun on rekisteröitävä sovelluksesi Googlen kehittäjäkonsoliin ja saada a Asiakastunnus ja Asiakkaan salaisuus.
Voit tehdä sen siirtymällä kohtaan Google Developer Console. Seuraavaksi kirjaudu sisään Google-tililläsi päästäksesi konsoliin. Kun olet kirjautunut sisään, luo uusi projekti.
Valitse projektin yleiskatsaussivulta API: t ja palvelut -välilehti vasemman valikkoruudun palveluluettelosta ja lopuksi Valtuustiedot vaihtoehto.
Klikkaa Luo tunnistetiedot -painiketta luodaksesi asiakastunnuksesi ja asiakassalaisuuden. Määritä seuraavaksi sovelluksen tyyppi annetuista vaihtoehdoista ja anna sitten sovelluksellesi nimi.
Määritä myöhemmin sovelluksesi kotireitin URL-osoite ja lopuksi sovelluksesi valtuutettu uudelleenohjaus-URI. Tässä tapauksessa sen pitäisi olla http://localhost: 3000/api/auth/callback/google NextAuthin Google-palveluntarjoajan asetusten mukaisesti.
Onnistuneen rekisteröinnin jälkeen Google antaa sinulle asiakastunnuksen ja asiakassalaisuuden käytettäväksi sovelluksessasi.
Asenna NextJS-sovellus
Aloita luomalla Next.js-projekti paikallisesti:
npx create-next-app next-auth-app
Kun asennus on valmis, siirry äskettäin luotuun projektihakemistoon ja suorita tämä komento käynnistääksesi kehityspalvelimen.
npm run dev
Avaa selain ja siirry kohtaan http://localhost: 3000. Tämän pitäisi olla odotettu tulos.
Löydät tämän projektin koodin siitä GitHub-arkisto.
.env-tiedoston määrittäminen
Luo uusi tiedosto projektisi juurikansioon ja anna sille nimi .env säilyttääksesi asiakastunnuksesi, salasuutesi ja perus-URL-osoitteesi.
NEXT_PUBLIC_GOOGLE_CLIENT_ID= 'Asiakastunnus'
NEXT_PUBLIC_GOOGLE_CLIENT_SECRET= 'salaisuus'
NEXT_PUBLIC_NEXTAUTH_URL= ' http://localhost: 3000'
NextAUTH-URL-osoitetta käytetään määrittämään sovelluksesi perus-URL-osoite, jota käytetään käyttäjien uudelleenohjaamiseen todennuksen jälkeen.
Integroi NextAuth Next.js-sovellukseesi
Asenna ensin NextAuthin kirjasto projektiisi.
npm install next-auth
Seuraavaksi vuonna /pages hakemistoon, luo uusi kansio ja anna sille nimi api. Muuta hakemistoksi api kansio ja luo toinen kansio nimeltä tod. Lisää todennuskansioon uusi tiedosto ja anna sille nimi [...nextauth].js ja lisää seuraavat koodirivit.
tuonti NextAuth alkaen"seuraava auth/seuraava";
tuonti GoogleProvider alkaen"next-auth/providers/google";
viedäoletuksena NextAuth({
palveluntarjoajat:[
GoogleProvider({
asiakastunnus: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_ID,
clientSecret: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_SECRET,
}),
]
});
Tämä koodi määrittää Googlen todennuspalveluntarjoajaksi. NextAuth-funktio määrittää Googlen tarjoajan määritysobjektin, joka ottaa käyttöön kaksi ominaisuutta: asiakastunnuksen ja asiakassalaisuuden, joka alustaa palveluntarjoajan.
Avaa seuraavaksi pages/_app.js tiedosto ja tee seuraavat muutokset koodiin.
tuonti'../styles/globals.css'
tuonti { SessionProvider } alkaen"seuraava auth/react"
toimintoOmaApp({ Komponentti, pageProps: { session, ...pageProps } }) {
palata (
</SessionProvider>
)
}
viedäoletuksena OmaApp
NextAuth's SessionProvider komponentti tarjoaa todennustilan hallintatoiminnon Next.js-sovellukselle. Se kestää a istunto prop, joka sisältää Googlen API: lta palautetut todennusistunnon tiedot, jotka sisältävät käyttäjätiedot, kuten heidän tunnuksensa, sähköpostiosoitteensa ja käyttöoikeustunnuksensa.
Käärimällä OmaApp komponentti SessionProvider-komponentin kanssa, käyttäjätiedot sisältävä todennusistuntoobjekti on saatavilla koko sovelluksen ajan, jolloin sovellus voi jatkaa ja renderöidä sivuja niiden todennustilan perusteella.
Määritä index.js-tiedosto
Avaa pages/index.js tiedosto, poista yleiskoodi ja lisää alla oleva koodi luodaksesi kirjautumispainikkeen, joka reitittää käyttäjät kirjautumissivulle.
tuonti Pää alkaen'seuraava/pää'
tuonti tyylejä alkaen'../styles/Home.module.css'
tuonti { käytä reititintä } alkaen'seuraava/reititin';viedäoletuksenatoimintoKoti() {
konst reititin = userRouter();
palata (
Luo seuraava sovellus</title>
"description" content="Luo seuraava sovellus" />
"kuvake" href="/favicon.ico" />
</Head>
Tervetuloa " https://nextjs.org">Next.js!</a>
</h1>
Aloita kirjautumalla sisään{' ' }
Google-tilisi kanssa</code>
</div>
)
}
Tämä koodi käyttää Next.js: n useRouter-koukkua reitityksen käsittelyyn sovelluksen sisällä määrittämällä reititinobjektin. Kun kirjautumispainiketta napsautetaan, käsittelijätoiminto kutsuu router.push-menetelmää uudelleenohjaamaan käyttäjä kirjautumissivulle.
Luo kirjautumistodennus sivu
Luo sivut-hakemistoon uusi tiedosto Login.js ja lisää sitten seuraavat koodirivit.
tuonti { useSession, signIn, sign Out } alkaen "next-auth/react"
tuo { useRouter } alkaen 'seuraava /router';
tuo tyylejä osoitteesta '../styles/Login.module.css'vienti oletus toiminto < span>Kirjautuminen() {
const { data: istunto } = useSession()
const reititin = userRouter();
if (istunto) {
return (
"title">Luo seuraava sovellus</h1>
Allekirjoitettu < span>in as {session.user.email}
</h2>