Ši biblioteka leidžia sklandžiai integruoti „Google“ autentifikavimą į „Next.js“ programą, todėl nereikia kurti jos nuo nulio.
Saugios autentifikavimo sistemos integravimas yra esminis plėtros žingsnis, kuris ne tik užtikrina saugią aplinką vartotojams, bet ir skatina pasitikėjimą jūsų produktu. Ši sistema užtikrina, kad jų duomenys būtų apsaugoti ir prie programos galėtų prisijungti tik įgalioti asmenys.
Saugaus autentifikavimo kūrimas nuo pat pradžių gali būti daug laiko reikalaujantis procesas, kurį reikia kruopščiai atlikti autentifikavimo protokolų ir procesų supratimas, ypač atliekant skirtingus autentifikavimo būdus teikėjai.
Naudodami NextAuth galite sutelkti dėmesį į pagrindinių funkcijų kūrimą. Skaitykite toliau, kad sužinotumėte, kaip integruoti „Google“ socialinį prisijungimą prie programos naudojant „NextAuth“.
Kaip veikia NextAuth
NextAuth.js yra atvirojo kodo autentifikavimo biblioteka, kuri supaprastina pridėjimo procesą autentifikavimas ir autorizacija funkcionalumą Next.js programoms, taip pat pritaikyti autentifikavimo darbo eigas. Ji teikia daugybę funkcijų, tokių kaip el. paštas, autentifikavimas be slaptažodžio ir įvairių autentifikavimo paslaugų teikėjų, tokių kaip „Google“, „GitHub“ ir kt., palaikymas.
Aukšto lygio „NextAuth“ veikia kaip tarpinė programinė įranga, palengvinanti jūsų taikomosios programos ir teikėjo autentifikavimo procesą. Po gaubtu, kai vartotojas bando prisijungti, jis nukreipiamas į „Google“ prisijungimo puslapį. Sėkmingai patvirtinus tapatybę, „Google“ grąžina naudingą krovinį, į kurį įeina vartotojo duomenys, pvz., vardas ir el. pašto adresas. Šie duomenys naudojami norint suteikti prieigą prie programos ir jos išteklių.
Naudodamas naudingos apkrovos duomenis, NextAuth sukuria seansą kiekvienam autentifikuotam vartotojui ir išsaugo seanso prieigos raktą saugiame tik HTTP slapuke. Seanso prieigos raktas naudojamas vartotojo tapatybei patikrinti ir jo autentifikavimo būsenai išsaugoti. Šis procesas taip pat taikomas kitiems teikėjams, kurių diegimas šiek tiek skiriasi.
Užregistruokite Next.js programą „Google Developer Console“.
„NextAuth“ palaiko „Google“ autentifikavimo paslaugą. Tačiau, kad jūsų programa sąveikautų su „Google“ API ir leistų naudotojams autentifikuoti jų „Google“ kredencialus, turėsite užregistruoti programą „Google“ kūrėjų pulte ir gauti a Kliento ID ir Kliento paslaptis.
Norėdami tai padaryti, eikite į Google Developer Console. Tada prisijunkite naudodami „Google“ paskyrą, kad pasiektumėte konsolę. Prisijungę sukurkite naują projektą.
Projekto apžvalgos puslapyje pasirinkite API ir paslaugos skirtuką iš paslaugų sąrašo kairiojoje meniu srityje ir galiausiai Įgaliojimai variantas.
Spustelėkite ant Sukurkite kredencialus mygtuką, kad sugeneruotumėte savo kliento ID ir kliento paslaptį. Tada nurodykite programos tipą iš pateiktų parinkčių ir pateikite programos pavadinimą.
Tada nurodykite savo programos pagrindinio maršruto URL ir galiausiai nurodykite įgaliotąjį programos peradresavimo URI. Šiuo atveju taip turėtų būti http://localhost: 3000/api/auth/callback/google kaip nurodyta NextAuth Google teikėjo nustatymuose.
Sėkmingai užsiregistravus, „Google“ suteiks jums kliento ID ir kliento paslaptį, kurią galėsite naudoti programoje.
Nustatykite „NextJS“ programą
Norėdami pradėti, sukurkite Next.js projektą vietoje:
npx Create-next-app next-ath-app
Baigę sąranką eikite į naujai sukurtą projekto katalogą ir paleiskite šią komandą, kad suaktyvintumėte kūrimo serverį.
npm paleisti dev
Atidarykite naršyklę ir eikite į http://localhost: 3000. Tai turėtų būti laukiamas rezultatas.
Šio projekto kodą galite rasti jame GitHub saugykla.
.env failo nustatymas
Savo projekto šakniniame aplanke sukurkite naują failą ir pavadinkite jį .env turėti savo kliento ID, paslaptį ir pagrindinį URL.
NEXT_PUBLIC_GOOGLE_CLIENT_ID= „kliento ID“
NEXT_PUBLIC_GOOGLE_CLIENT_SECRET= 'paslaptis'
NEXT_PUBLIC_NEXTAUTH_URL= ' http://localhost: 3000'
„NextAUTH“ URL naudojamas nurodyti pagrindinį jūsų programos URL, kuris naudojamas naudotojams peradresuoti pasibaigus autentifikavimui.
Integruokite NextAuth į savo Next.js programą
Pirmiausia į savo projektą įdiekite NextAuth biblioteką.
npm įdiegti kitą autentifikavimą
Toliau, į /pages kataloge, sukurkite naują aplanką ir pavadinkite jį api. Pakeiskite katalogą į api aplanką ir sukurkite kitą aplanką, pavadintą aut. Autentavimo aplanke pridėkite naują failą ir pavadinkite jį [...nextauth].js ir pridėkite šias kodo eilutes.
importuoti KitasAuth iš"kitas autorius / kitas";
importuoti GoogleProvider iš"next-auth/providers/google";
eksportuotinumatytas NextAuth({
teikėjai:[
GoogleProvider ({
kliento ID: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_ID,
kliento paslaptis: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_SECRET,
}),
]
});
Šis kodas sukonfigūruoja „Google“ kaip autentifikavimo teikėją. Funkcija NextAuth apibrėžia „Google“ teikėjo konfigūracijos objektą, kuris turi dvi ypatybes: kliento ID ir kliento paslaptį, kuri inicijuoja teikėją.
Tada atidarykite pages/_app.js failą ir atlikite šiuos kodo pakeitimus.
importuoti„../styles/globals.css“
importuoti { SessionProvider } iš"kitas autorius / reaguoti"
funkcija„MyApp“.({ Component, pageProps: { session, ...pageProps } }) {
grąžinti (
</SessionProvider>
)
}
eksportuotinumatytas „MyApp“.
NextAuth's SessionProvider komponentas suteikia autentifikavimo būsenos valdymo funkciją programai Next.js. Tam reikia a sesija pasiūlymas, kuriame yra autentifikavimo seanso duomenys, grąžinti iš „Google“ API, įskaitant naudotojo informaciją, pvz., ID, el. pašto adresą ir prieigos raktą.
Apvyniojus „MyApp“. komponentas su SessionProvider komponentu, autentifikavimo seanso objektas su vartotojo informacija tampa prieinamas visoje programoje, leidžianti programai išlikti ir pateikti puslapius pagal jų autentifikavimo būseną.
Sukonfigūruokite failą index.js
Atidaryk pages/index.js failą, ištrinkite pagrindinį kodą ir pridėkite toliau esantį kodą, kad sukurtumėte prisijungimo mygtuką, nukreipiantį vartotojus į prisijungimo puslapį.
importuoti Galva iš'kitas/galva'
importuoti stiliai iš„../styles/Home.module.css“
importuoti { useRouter } iš'kitas/maršrutizatorius';eksportuotinumatytasfunkcijaNamai() {
konst maršrutizatorius = useRouter();
grąžinti (
Sukurti kitą programą</title>
"description" content="Sukurta kuriant kitą programą" />
"piktograma" href="/favicon.ico" />
</Head>
Sveiki atvykę į https://nextjs.org">Next.js!</a>
</h1>
Pradėkite prisiregistravę{'' }
su „Google“ paskyra</code>
</div>
)
}
Šis kodas naudoja Next.js useRouter kabliuką, kad tvarkytų maršrutą programoje apibrėžiant maršruto parinktuvo objektą. Spustelėjus prisijungimo mygtuką, tvarkyklės funkcija iškviečia metodą router.push, kad peradresuotų vartotoją į prisijungimo puslapį.
Sukurti prisijungimo autentifikavimą Puslapis
Kataloge puslapiai sukurkite naują failą Login.js, tada pridėkite šias kodo eilutes.
importuoti { useSession, signIn, signOut } iš "next-ath/react"
importuoti { useRouter } iš "kitas" /router';
importuoti stilius iš '../styles/Login.module.css'eksportuoti numatytoji funkcija < span>Prisijungimas() {
const { duomenys: sesija } = useSession()
const maršrutizatorius = useRouter();
if (sesija) {
grįžti (
"title">Kurti kitą programą</h1>
Pasirašyta < span>į kaip {session.user.email}
</h2>