Bu kitaplık, Google kimlik doğrulamasını Next.js uygulamanıza sorunsuz bir şekilde entegre etmenizi sağlayarak uygulamayı sıfırdan geliştirme gereksinimini ortadan kaldırır.
Güvenli bir kimlik doğrulama sisteminin entegre edilmesi, yalnızca kullanıcılar için güvenli bir ortam sağlamakla kalmayan, aynı zamanda ürününüze güven aşılayan çok önemli bir geliştirme adımıdır. Bu sistem, verilerinin korunmasını ve uygulamaya yalnızca yetkili kişilerin erişebilmesini sağlar.
Sıfırdan güvenli bir kimlik doğrulaması oluşturmak, kapsamlı bir inceleme gerektiren zaman alıcı bir süreç olabilir. Özellikle farklı kimlik doğrulama işlemleri yapılırken, kimlik doğrulama protokollerini ve süreçlerini anlama sağlayıcılar.
NextAuth'u kullanarak, temel özellikleri oluşturmaya odaklanabilirsiniz. NextAuth kullanarak Google sosyal oturum açma bilgilerini uygulamanıza nasıl entegre edeceğinizi öğrenmek için okumaya devam edin.
NextAuth Nasıl Çalışır?
SonrakiAuth.js ekleme sürecini basitleştiren açık kaynaklı bir kimlik doğrulama kitaplığıdır.
Kimlik doğrulama ve yetkilendirme Next.js uygulamalarına işlevselliğin yanı sıra kimlik doğrulama iş akışlarını özelleştirme. E-posta, şifresiz kimlik doğrulama gibi bir dizi özellik ve Google, GitHub ve daha fazlası gibi çeşitli kimlik doğrulama sağlayıcıları için destek sağlar.NextAuth, üst düzeyde, uygulamanız ile sağlayıcı arasındaki kimlik doğrulama sürecini kolaylaştıran bir ara yazılım görevi görür. Gizli olarak, bir kullanıcı oturum açmaya çalıştığında, Google'ın oturum açma sayfasına yönlendirilir. Başarılı kimlik doğrulamanın ardından Google, kullanıcının ad ve e-posta adresi gibi verilerini içeren bir veri yükü döndürür. Bu veriler, uygulamaya ve kaynaklarına erişim yetkisi vermek için kullanılır.
NextAuth, yük verilerini kullanarak, kimliği doğrulanmış her kullanıcı için bir oturum oluşturur ve oturum belirtecini yalnızca güvenli bir HTTP tanımlama bilgisinde depolar. Oturum belirteci, kullanıcının kimliğini doğrulamak ve kimlik doğrulama durumunu sürdürmek için kullanılır. Bu süreç, uygulamada küçük farklılıklar olan diğer sağlayıcılar için de geçerlidir.
Next.js Uygulamanızı Google Developer Console'a Kaydedin
NextAuth, Google kimlik doğrulama hizmeti için destek sağlar. Ancak, uygulamanızın Google API'leri ile etkileşime girmesi ve kullanıcıların kimlik doğrulaması yapmasına izin vermesi için Google kimlik bilgileri, uygulamanızı Google geliştirici konsoluna kaydetmeniz ve Elde etmek Müşteri Kimliği Ve Müşteri Sırrı.
Bunu yapmak için şuraya gidin: Google Geliştirici Konsolu. Ardından, konsola erişmek için Google hesabınızla oturum açın. Giriş yaptıktan sonra yeni bir proje oluşturun.
Projenin genel bakış sayfasında, API'ler ve Hizmetler sol menü bölmesindeki hizmetler listesinden sekme ve son olarak, kimlik bilgileri seçenek.
Tıkla Kimlik Bilgileri Oluştur Müşteri Kimliğinizi ve Müşteri Sırrınızı oluşturmak için düğmesine basın. Ardından, verilen seçeneklerden uygulamanın türünü belirtin ve ardından uygulamanız için bir ad verin.
Ardından, uygulamanızın ana yol URL'sini belirtin ve son olarak uygulamanız için yetkili yönlendirme URI'sini belirtin. Bu durum için olması gereken http://localhost: 3000/api/auth/geri arama/google NextAuth'un Google sağlayıcı ayarları tarafından belirtildiği gibi.
Başarılı bir kayıttan sonra Google, uygulamanızda kullanmanız için size bir Müşteri Kimliği ve Müşteri Sırrı sağlayacaktır.
NextJS Uygulamasını Kurun
Başlamak için yerel olarak bir Next.js projesi oluşturun:
npx oluşturma-sonraki-uygulama sonraki-auth-uygulaması
Kurulum tamamlandıktan sonra, yeni oluşturulan proje dizinine gidin ve geliştirme sunucusunu döndürmek için bu komutu çalıştırın.
npm geliştiriciyi çalıştır
Tarayıcınızı açın ve şuraya gidin: http://localhost: 3000. Beklenen sonuç bu olmalıdır.
Bu projenin kodunu kendi içinde bulabilirsiniz. GitHub deposu.
.env Dosyasını Kurma
Projenizin kök klasöründe yeni bir dosya oluşturun ve adlandırın .env Müşteri Kimliğinizi, Sırrınızı ve temel URL'yi saklamak için.
NEXT_PUBLIC_GOOGLE_CLIENT_ID= 'Müşteri Kimliği'
NEXT_PUBLIC_GOOGLE_CLIENT_SECRET= 'gizli'
NEXT_PUBLIC_NEXTAUTH_URL= ' http://localhost: 3000'
NextAUTH URL'si, kimlik doğrulama tamamlandıktan sonra kullanıcıları yeniden yönlendirmek için kullanılan uygulamanızın temel URL'sini belirtmek için kullanılır.
NextAuth'u Next.js Uygulamanıza Entegre Edin
İlk olarak, NextAuth'un kitaplığını projenize kurun.
npm sonraki kimlik doğrulamasını yükle
Sonraki, içinde /pages dizini, yeni bir klasör oluşturun ve adlandırın API. dizini şu şekilde değiştirin: API adlı başka bir klasör oluşturun. yetki auth klasöründe yeni bir dosya ekleyin ve adlandırın [...sonraki].js ve aşağıdaki kod satırlarını ekleyin.
içe aktarmak Sonraki Kimlik Doğrulama itibaren"sonraki kimlik doğrulama/sonraki";
içe aktarmak GoogleSağlayıcı itibaren"sonraki kimlik doğrulama/sağlayıcılar/google";
ihracatvarsayılan Sonraki Kimlik Doğrulama({
sağlayıcılar:[
GoogleSağlayıcı({
clientId: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_ID,
clientSecret: process.env. NEXT_PUBLIC_GOOGLE_CLIENT_SECRET,
}),
]
});
Bu kod, Google'ı kimlik doğrulama sağlayıcısı olarak yapılandırır. NextAuth işlevi, iki özelliği alan Google sağlayıcı yapılandırma nesnesini tanımlar: bir Müşteri Kimliği ve sağlayıcıyı başlatan bir Müşteri Sırrı.
Ardından, sayfalar/_app.js dosyasını açın ve kodda aşağıdaki değişiklikleri yapın.
içe aktarmak'../styles/globals.css'
içe aktarmak { Oturum Sağlayıcı } itibaren"sonraki kimlik doğrulama/tepki"
işlevUygulamam({ Bileşen, pageProps: { oturum, ...pageProps } }) {
geri dönmek (
</SessionProvider>
)
}
ihracatvarsayılan Uygulamam
SonrakiAuth'lar Oturum Sağlayıcı bileşen, Next.js uygulamasına kimlik doğrulama durumu yönetimi işlevi sağlar. alır oturum kimlik, e-posta ve erişim belirteci gibi kullanıcı ayrıntılarını içeren Google'ın API'sinden döndürülen kimlik doğrulama oturumu verilerini içeren prop.
sarılarak Uygulamam SessionProvider bileşeni ile bileşen, kullanıcı ayrıntılarını içeren kimlik doğrulama oturumu nesnesi kullanıma sunulur uygulama genelinde, uygulamanın sayfaları kimlik doğrulama durumlarına göre işlemesini ve işlemesini sağlar.
index.js Dosyasını Yapılandırma
Aç sayfalar/index.js dosyasını açın, standart kodu silin ve kullanıcıları bir oturum açma sayfasına yönlendiren bir oturum açma düğmesi oluşturmak için aşağıdaki kodu ekleyin.
içe aktarmak KAFA itibaren"sonraki / kafa"
içe aktarmak stiller itibaren'../styles/Home.module.css'
içe aktarmak {Yönlendiriciyi kullan} itibaren"sonraki/yönlendirici";ihracatvarsayılanişlevEv() {
sabit yönlendirici = useRouter();
geri dönmek (
Bir Sonraki Uygulamayı Oluşturun</title>
"description" content="Bir sonraki uygulamayı oluştur tarafından oluşturuldu" />
"icon" href="/favicon.ico" />
</Head>
'a hoş geldiniz" https://nextjs.org">Next.js!</a>
</h1>
içinde{'' imzalayarak başlayın }
ile Google Hesabınız</code>
</div>
)
}
Bu kod, bir yönlendirici nesnesi tanımlayarak uygulama içinde yönlendirmeyi işlemek için Next.js useRouter kancasını kullanır. Giriş düğmesine tıklandığında, işleyici işlevi yönlendirmek için router.push yöntemini çağırır. kullanıcıyı giriş sayfasına yönlendirin.
Bir Giriş Kimlik Doğrulaması Oluşturun Sayfa
pages dizininde yeni bir Login.js dosyası oluşturun, ardından aşağıdaki kod satırlarını ekleyin.
içe aktar { useSession, oturum açma, oturum kapatma } from "next-auth/react"
import { useRouter } from 'next /router'; dan stilleri
içe aktar '../styles/Login.module.css'dışa aktarma varsayılan işlev < span>Giriş() {
sabit { veri: oturum } = useSession()
const yönlendirici = useRouter();
if (oturum) {
dönüş (
"title">Sonraki Uygulamayı Oluştur</h1>
İmzalandı < yayılma alanı as {session.user.email}
</h2>