Ta knjižnica vam omogoča brezhibno integracijo Googlovega preverjanja pristnosti v vašo aplikacijo Next.js, s čimer odpravite potrebo po razvoju iz nič.
Integracija varnega sistema za preverjanje pristnosti je ključni razvojni korak, ki ne zagotavlja le varnega okolja za uporabnike, ampak tudi vliva zaupanje v vaš izdelek. Ta sistem zagotavlja, da so njihovi podatki zaščiteni in da lahko do aplikacije dostopajo le pooblaščene osebe.
Izgradnja varne avtentikacije od začetka je lahko dolgotrajen proces, ki zahteva temeljito razumevanje avtentikacijskih protokolov in procesov, še posebej pri obravnavanju različnih avtentikacij ponudniki.
Z uporabo NextAuth se lahko osredotočite na gradnjo osnovnih funkcij. Preberite, če želite izvedeti, kako integrirati Googlovo socialno prijavo v svojo aplikacijo z uporabo NextAuth.
Kako deluje NextAuth
NextAuth.js je odprtokodna knjižnica za preverjanje pristnosti, ki poenostavlja postopek dodajanja avtentikacijo in avtorizacijo funkcionalnost za aplikacije Next.js ter prilagajanje delovnih tokov preverjanja pristnosti. Zagotavlja vrsto funkcij, kot so e-pošta, preverjanje pristnosti brez gesla in podpora za različne ponudnike preverjanja pristnosti, kot so Google, GitHub in drugi.
Na visoki ravni NextAuth deluje kot vmesna programska oprema, ki olajša postopek preverjanja pristnosti med vašo aplikacijo in ponudnikom. Pod pokrovom, ko se uporabnik poskuša prijaviti, je preusmerjen na Googlovo stran za prijavo. Po uspešnem preverjanju pristnosti Google vrne koristni tovor, ki vključuje podatke o uporabniku, kot sta njegovo ime in e-poštni naslov. Ti podatki se uporabljajo za odobritev dostopa do aplikacije in njenih virov.
S pomočjo podatkov koristnega tovora NextAuth ustvari sejo za vsakega preverjenega uporabnika in shrani žeton seje v varen piškotek samo HTTP. Žeton seje se uporablja za preverjanje identitete uporabnika in ohranjanje njegovega statusa preverjanja pristnosti. Ta postopek velja tudi za druge ponudnike z manjšimi odstopanji v izvedbi.
Registrirajte svojo aplikacijo Next.js na Googlovi konzoli za razvijalce
NextAuth zagotavlja podporo za Googlovo storitev preverjanja pristnosti. Da pa vaša aplikacija komunicira z Googlovimi API-ji in omogoča uporabnikom preverjanje pristnosti z njihove poverilnice za Google, boste morali svojo aplikacijo registrirati na Googlovi razvijalski konzoli in pridobiti a ID stranke in Skrivnost stranke.
Če želite to narediti, pojdite na Google Developer Console. Nato se prijavite s svojim Google Računom za dostop do konzole. Ko ste prijavljeni, ustvarite nov projekt.
Na strani s pregledom projekta izberite API-ji in storitve s seznama storitev v levem podoknu menija in na koncu še Poverilnice možnost.
Kliknite na Ustvarite poverilnice gumb za ustvarjanje vašega ID-ja stranke in skrivnosti stranke. Nato med danimi možnostmi določite vrsto aplikacije in nato podajte ime za svojo aplikacijo.
Nato določite URL domače poti svoje aplikacije in na koncu določite pooblaščeni URI preusmeritve za svojo aplikacijo. Za ta primer bi moralo biti http://localhost: 3000/api/auth/callback/google kot določajo nastavitve Googlovega ponudnika NextAuth.
Po uspešni registraciji vam bo Google posredoval ID odjemalca in skrivnost odjemalca za uporabo v vaši aplikaciji.
Nastavite aplikacijo NextJS
Za začetek ustvarite projekt Next.js lokalno:
npx create-next-app next-auth-app
Ko je nastavitev končana, se pomaknite do novo ustvarjenega imenika projekta in zaženite ta ukaz, da zavrtite razvojni strežnik.
npm run dev
Odprite brskalnik in se pomaknite do http://localhost: 3000. To bi moral biti pričakovan rezultat.
Kodo tega projekta najdete v Repozitorij GitHub.
Nastavitev datoteke .env
V korenski mapi vašega projekta ustvarite novo datoteko in jo poimenujte .env za shranjevanje ID-ja odjemalca, skrivnosti in osnovnega URL-ja.
NEXT_PUBLIC_GOOGLE_CLIENT_ID= 'ID stranke'
NEXT_PUBLIC_GOOGLE_CLIENT_SECRET= 'skrivnost'
NEXT_PUBLIC_NEXTAUTH_URL= ' http://localhost: 3000'
URL NextAUTH se uporablja za določitev osnovnega URL-ja vaše aplikacije, ki se uporablja za preusmerjanje uporabnikov po zaključku preverjanja pristnosti.
Integrirajte NextAuth v svojo aplikacijo Next.js
Najprej namestite knjižnico NextAuth v svoj projekt.
npm namestite next-auth
Naprej, v /pages ustvarite novo mapo in jo poimenujte api. Spremenite imenik v api in ustvarite drugo mapo z imenom avt. V mapo auth dodajte novo datoteko in jo poimenujte [...nextauth].js in dodajte naslednje vrstice kode.
uvoz NextAuth od"naslednja avtorizacija/naslednja";
uvoz GoogleProvider od"next-auth/providers/google";
izvozprivzeto NextAuth({
ponudniki:[
GoogleProvider({
clientId: proces.env. NEXT_PUBLIC_GOOGLE_CLIENT_ID,
clientSecret: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_SECRET,
}),
]
});
Ta koda konfigurira Google kot ponudnika preverjanja pristnosti. Funkcija NextAuth definira konfiguracijski objekt Googlovega ponudnika, ki ima dve lastnosti: ID odjemalca in skrivnost odjemalca, ki inicializira ponudnika.
Nato odprite pages/_app.js datoteko in naredite naslednje spremembe kode.
uvoz'../styles/globals.css'
uvoz {SessionProvider} od"next-auth/react"
funkcijoMyApp({ Komponenta, pageProps: { session, ...pageProps } }) {
vrnitev (
</SessionProvider>
)
}
izvozprivzeto MyApp
NextAuth's SessionProvider zagotavlja funkcijo upravljanja stanja preverjanja pristnosti za aplikacijo Next.js. Potrebuje a sejo prop, ki vsebuje podatke o seji preverjanja pristnosti, vrnjene iz Googlovega API-ja, ki vključuje podrobnosti uporabnika, kot so njihov ID, e-pošta in žeton za dostop.
Z zavijanjem MyApp s komponento SessionProvider je na voljo objekt seje za preverjanje pristnosti s podrobnostmi o uporabniku v celotni aplikaciji, kar aplikaciji omogoča, da vztraja in upodablja strani na podlagi njihovega stanja preverjanja pristnosti.
Konfigurirajte datoteko index.js
Odprite pages/index.js datoteko, izbrišite okvirno kodo in dodajte spodnjo kodo, da ustvarite gumb za prijavo, ki uporabnike usmerja na stran za prijavo.
uvoz glava od'naprej/glava'
uvoz stilov od'../styles/Home.module.css'
uvoz {useRouter} od'naslednji/usmerjevalnik';izvozprivzetofunkcijodomov() {
konst usmerjevalnik = useRouter();
vrnitev (
Ustvari naslednjo aplikacijo</title>
"description" content="Ustvarjeno z ustvarjanjem naslednje aplikacije" />
"icon" href="/favicon.ico" />
</Head>
Dobrodošli v " https://nextjs.org">Next.js!</a>
</h1>
Začnite s prijavo v{' ' }
z vašim Google Računom</code>
</div>
)
}
Ta koda uporablja kavelj Next.js useRouter za obravnavanje usmerjanja znotraj aplikacije z definiranjem predmeta usmerjevalnika. Ko kliknete gumb za prijavo, funkcija za obravnavo pokliče metodo router.push za preusmeritev uporabnika na stran za prijavo.
Ustvarite avtentikacijo za prijavo Stran
V imeniku pages ustvarite novo datoteko Login.js, nato dodajte naslednje vrstice kode.
import { useSession, signIn, signOut } from »next-auth/react«
import { useRouter} from 'next /router';
uvozi sloge iz '../styles/Login.module.css'izvoz privzeta funkcija < span>Prijava() {
const { podatki: seja } = useSession()
const router = useRouter();
if (seja) {
return (
"title">Ustvari naslednjo aplikacijo</h1>
Podpisano < span>v kot {session.user.email}
</h2>