NextAuth.js ve Prisma ile Next.js 13 Projesinde Parolasız Oturum Açmayı Uygulama

şifresiz
nextjs
nextauth
prisma
NextJs 13'te Şifresiz Giriş cover image

Bu makalede, NextAuth.js kitaplığını kullanarak bir Next.js projesinde parolasız kimlik doğrulamayı uygulamak için gereken adımlar açıklanacaktır. Ayrıca bunu başarmak için Prisma'yı veritabanı bağdaştırıcımız olarak kullanacağız.

Parolasız kimlik doğrulama, geleneksel kullanıcı adı ve parola kombinasyonlarına olan ihtiyacı ortadan kaldıran yenilikçi bir yaklaşımdır. Bunun yerine, e-posta sihirli bağlantıları veya SMS yoluyla gönderilen tek seferlik kodlar gibi alternatif yöntemlerden yararlanarak daha güvenli ve kullanıcı dostu bir kimlik doğrulama deneyimi sunar.

Next.js, basitliği ve verimliliğiyle bilinen, web uygulamaları oluşturmaya yönelik popüler bir React çerçevesidir. Next.js için özel olarak tasarlanmış bir kimlik doğrulama kütüphanesi olan NextAuth.js'yi entegre ederek şifresiz kimlik doğrulamayı projemize kolayca dahil edebiliriz.

Ayrıca veritabanı bağdaştırıcımız olarak Prisma'ya güveneceğiz. Prisma, tür açısından güvenli ve otomatik olarak oluşturulan bir sorgu oluşturucu sağlayarak veritabanı etkileşimlerini basitleştiren bir ORM (Nesne-İlişkisel Haritalama) aracıdır. PostgreSQL, MySQL ve SQLite dahil olmak üzere birden fazla veritabanını destekler ve bu da onu kimlik doğrulama uygulamamız için çok yönlü bir seçim haline getirir.

Bu kılavuz boyunca, bir Next.js projesinde NextAuth.js kullanılarak parolasız kimlik doğrulamanın nasıl kurulacağı ve yapılandırılacağı konusunda adım adım talimatlar sunacağız. Ayrıca, uygulamamız ile veritabanı arasında kesintisiz iletişime olanak tanıyan Prisma'yı veritabanı bağdaştırıcımız olarak nasıl entegre edeceğimizi de göstereceğiz.

Şimdi Next.js uygulamamızın güvenliğini ve kullanıcı deneyimini, parolasız kimlik doğrulamayı ve NextAuth.js ile Prisma'nın yeteneklerini kullanarak nasıl geliştirebileceğimizi keşfedeceğiz. Haydi başlayalım.

Şifresiz giriş nedir?

Parolasız oturum açma, adından da anlaşılacağı gibi, geleneksel kullanıcı adı ve parola kombinasyonlarına olan ihtiyacı ortadan kaldıran bir kimlik doğrulama yöntemidir. Bunun yerine, kullanıcının kimliğini doğrulamak için e-posta sihirli bağlantıları veya SMS yoluyla gönderilen tek seferlik kodlar gibi alternatif yöntemlerden yararlanılır. Bu yaklaşım, geleneksel oturum açma yöntemlerine göre çeşitli avantajlar sunar. İlk olarak, zayıf parolalar veya parolaların yeniden kullanılması gibi parolayla ilgili güvenlik açıkları riskini ortadan kaldırır. İkinci olarak, karmaşık şifreleri hatırlama ve girme ihtiyacını ortadan kaldırarak kullanıcı deneyimini basitleştirir.

Sihirli e-posta bağlantılarını veya tek kullanımlık kodları kullanarak şifresiz oturum açmayı uygulamak için bir SMTP (Basit Posta Aktarım Protokolü) sunucusuna ihtiyacımız var.

İnternet üzerinden e-posta göndermekten bir SMTP sunucusu sorumludur. Parolasız kimlik doğrulama bağlamında sunucu, sihirli bağlantıları veya tek kullanımlık kodları kullanıcının kayıtlı e-posta adresine gönderir. Bir kullanıcı oturum açma işlemini başlattığında benzersiz bir bağlantı veya kod içeren bir e-posta oluşturulur ve kullanıcıya gönderilir. Kullanıcı daha sonra bağlantıya tıklayabilir veya kimlik doğrulama işlemini tamamlamak için kodu girebilir. SMTP sunucusu, uygulama ile kullanıcının e-posta hizmeti arasında aracı görevi görerek kimlik doğrulama mesajlarının güvenli ve güvenilir şekilde teslim edilmesini sağlar. Bir SMTP sunucusu kullanarak, şifresiz oturum açmayı etkili bir şekilde uygulayabilir ve kullanıcılarımıza kusursuz bir kimlik doğrulama deneyimi sağlayabiliriz.

Hadi başlayalım!

Öncelikle yeni bir Next.js projesi oluşturmamız gerekiyor. Bunu yapmak için aşağıdaki komutu kullanın:

npx create-next-app@latest

Generating a new NextJS project

Yeni Next.js projesini oluşturduktan sonra yeni oluşturulan proje dizinine gidebilirsiniz.

Dizini projeye değiştirerek Next.js proje yapısını oluşturan çeşitli klasörleri ve dosyaları keşfedebileceksiniz.

Project Structure

Next.js uygulamanızın etkili bir şekilde geliştirilmesi ve düzenlenmesi için proje yapısını anlamak çok önemlidir. Resmi belgelere başvurarak en iyi uygulamalardan yararlanabilir ve kodunuzu nasıl yapılandıracağınız, statik varlıkları nasıl yöneteceğiniz ve yeniden kullanılabilir bileşenler oluşturun.

Bağımlılıklarımızı yükleme

NextAuth.js kullanarak Next.js projemizde şifresiz kimlik doğrulamayı etkinleştirmek için öncelikle gerekli bağımlılıkları kurmamız gerekiyor. Projemize hem NextAuth.js hem de nodemailer eklemek için yarn add next-auth nodemailer komutunu çalıştırın.

Node.js'de e-posta göndermek için popüler ve çok yönlü bir modül olduğundan nodemailer'ı özellikle kullanıyoruz. Parolasız kimlik doğrulama için gereken sihirli bağlantıları veya tek kullanımlık kodları e-posta yoluyla göndermenin basit ve güvenilir bir yolunu sağlar.

Daha sonra Prisma'yı veritabanı bağdaştırıcımız olarak entegre edelim. Aşağıdaki komutu kullanarak gerekli Prisma paketlerini yükleyerek başlayın:

yarn add @prisma/client @next-auth/prisma-adapter

Bu paketler Next.js uygulamamız ile veritabanı arasında kesintisiz iletişim sağlayacaktır. Ek olarak, aşağıdakileri çalıştırarak Prisma'yı bir geliştirme bağımlılığı olarak da kurmamız gerekiyor:

yarn add prisma --dev

Bu adım, Prisma ve onun veritabanı etkileşimleri için otomatik olarak oluşturulan sorgu oluşturucuyla çalışmak için gerekli araçlara sahip olmamızı sağlar.

Bu bağımlılıkları yükleyerek Next.js projemizde NextAuth.js ve Prisma'yı kullanarak şifresiz kimlik doğrulamanın uygulanmasının temelini oluşturuyoruz.

Prisma'yı kurun

Next.js projesinde şifresiz kimlik doğrulamayı kullanmak için e-posta gönderimi için Prisma'yı kurmanız ve bir SMTP sunucusuna erişim sahibi olmanız gerekir. Bu eğitim, e-posta göndermek için kişisel Gmail hesabınızı kullanma konusunda size rehberlik edecektir. Başarılı bir kurulum için aşağıdaki adımları izleyin.

Öncelikle projenizin kökünde bir "prisma" klasörü oluşturun. Bu klasör Prisma ile ilgili dosyaları ve konfigürasyonları barındıracaktır. Ardından, "prisma" klasörü içinde "schema.prisma" adlı yeni bir dosya oluşturun. Şema dosyası, veritabanınızın yapısını tanımlar ve Prisma'nın otomatik olarak oluşturulan kodu için bir plan görevi görür.

Şema kavramında yeniyseniz endişelenmeyin! Şema, veritabanınızın tablolarını, alanlarını, ilişkilerini ve kısıtlamalarını belirtir. Şemayı oluşturmak için NextAuth.js'nin resmi belgelerine başvurabilir ve orada sağlanan örnek şemayı kopyalayabilirsiniz. Bu şema bir başlangıç ​​noktasıdır ve uygulama gereksinimlerinize uyacak şekilde özelleştirilebilir.

Schema file

Daha sonra projenizin kökünde bir ".env" dosyası oluşturun. Bu dosya, SMTP sunucunuz için gerekli yapılandırmalar da dahil olmak üzere ortam değişkenlerinizi depolayacaktır. ".env" dosyasını doldurmak için aşağıda verilen örnek konfigürasyonları kopyalayabilirsiniz. İlgili alanlara Gmail hesabı kimlik bilgilerinizi ve SMTP sunucusu ayarlarınızı girdiğinizden emin olun.

EMAIL_SERVER_USER="YourGmailAddress"
EMAIL_SERVER_PASSWORD="GmailPassOrGeneratedPass"
EMAIL_SERVER_HOST=smtp.gmail.com
EMAIL_SERVER_PORT=587
EMAIL_FROM="noreply@example.com"

NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=ThisNeedsToBeSuperSecret

Bu adımları takip ederek Prisma'yı kurmuş ve Gmail hesabınızı kullanarak e-posta göndermek için SMTP sunucusunu yapılandırmış olacaksınız. Bu hazırlıklar Next.js projenizde parolasız kimlik doğrulama akışını etkinleştirmek için çok önemlidir.

Not

Google hesabınız için İki Faktörlü Kimlik Doğrulamayı (2FA) etkinleştirdiyseniz bir uygulama şifresi oluşturmanız gerekir. Uygulama şifresi, birincil Google hesabı şifrenizi açığa çıkarmadan belirli uygulamalara veya cihazlara erişim sağlayan ayrı bir şifredir. Bir uygulama şifresi oluşturmak için aşağıdaki talimatları izleyin.

  1. https://myaccount.google.com/ adresini ziyaret ederek Google Hesabı ayarları sayfasına gidin.

  2. "Güvenlik" sekmesine gidin.

  3. "2FA" bölümünü bulun, aşağı kaydırın ve "Uygulama Şifreleri"ni seçin.

Google Account Security

Google Account Security

  1. Güvenlik doğrulaması için Google hesabınızın şifresini tekrar girmeniz istenebilir.

  2. "Uygulama seç" açılır menüsünde "Posta" veya "Diğer (Özel ad)" seçeneğini seçin.

  • "Posta" seçeneği mevcutsa seçin.

  • "Posta" seçeneği mevcut değilse, "Diğer (Özel ad)"ı seçin ve tanımlama için özel bir ad girin.

  1. "Oluştur" veya "Şifre Oluştur" düğmesine tıklayın.

  2. Google sizin için benzersiz bir uygulama şifresi oluşturacaktır. Bu şifreyi not edin, çünkü bunu uygulamamızda e-posta göndermek için kullanacağız.

  3. Oluşturulan bu uygulama şifresini Next.js uygulamanızın SMTP sunucusu yapılandırmasında kullanın. Normal Gmail hesabınızın şifresini bu uygulama şifresiyle değiştirin.

Bu, 2FA etkin olsa bile uygulamanızın Gmail hesabınızı kullanarak güvenli bir şekilde e-posta gönderebilmesini sağlar.

Supabase kullanarak PostgreSQL

Devam etmeden önce projemize ait veritabanının doğru çalıştığından emin olmamız gerekiyor. Bu demo için Supabase PostgreSQL veritabanını kullanmanızı öneririz. Bir Supabase projesine başlamak ve PostgreSQL bağlantı URL'sini edinmek için şu adımları izleyin:

  1. supabase.io adresine gidin ve hesabınızda oturum açın veya hesabınız yoksa yeni bir hesap oluşturun.

  2. Oturum açtığınızda Supabase kontrol paneline yönlendirileceksiniz. Yeni bir projeye başlamak için "Yeni Proje Oluştur"a tıklayın.

  3. Projenize bir ad verin ve mevcut konumunuza en yakın bölgeyi seçin. Şifrenizi unutmayın, daha sonra ihtiyacınız olacak.

  4. Projeyi oluşturduğunuzda proje kontrol paneline yönlendirileceksiniz. Veritabanı ayarlarına erişmek için sol kenar çubuğundaki "Veritabanı" seçeneğini tıklayın.

  5. "Veritabanı" bölümünde PostgreSQL bağlantı URL'sini bulacaksınız. Bu URL, Supabase projenizin veritabanına bağlanmak için ana bilgisayar, bağlantı noktası, veritabanı adı, kullanıcı adı ve şifre gibi gerekli tüm bilgileri içerir. Şu biçimde görüntülenecektir: postgres://<kullanıcı adı>:<şifre>@<ana bilgisayar>:<port>/<veritabanı>

Postgresql connection string

  1. PostgreSQL bağlantı URL'sini kopyalayın ve güvende tutun. Uygulamanız ile Supabase veritabanı arasında bağlantı kurmak için buna ihtiyacınız olacak.
    // .env
    
    DATABASE_URL=postgresql://postgres:[Password]@db.ixjsisbwdafsjvgifliu.supabase.co:5432/postgres
    ```

Şimdi aşağıdaki komutu çalıştırarak Prisma client’ımızı oluşturduğumuzdan emin olalım: `npx prisma created`.

Prisma İstemcisi, şemanıza göre otomatik olarak oluşturulan bir veritabanı istemcisidir. Varsayılan olarak, Prisma İstemcisi "node_modules/.prisma/client" klasöründe oluşturulur, ancak [gerekirse özel bir konum belirtebilirsiniz](https://www.prisma.io/docs/concepts/components/prisma-client/working-with-prismaclient/generating-prisma-client#using-a-custom-output-path).

Daha sonra ilk geçişimizi oluşturmaya devam edeceğiz. Şu komutu çalıştırın: `npx prisma migrate dev`. Her geçişe açıklayıcı bir ad verebilirsiniz.

Prisma'da geçiş, zaman ilerledikçe veritabanı şemanızda yapılacak ayarlamaları yönetmek için kullanılan bir yöntemdir. Önceden var olan hiçbir veriyi kaybetmeden veritabanı yapınızı değiştirmenizi sağlar. Bu geçişler, veritabanı şemanızın, değişen uygulama ihtiyaçlarıyla uyumlu olmasını sağladığından çok önemlidir. Prisma'nın geçiş aracıyla bu değişiklikleri uygun bir şekilde versiyonlayabilir, uygulayabilir ve geri alabilirsiniz, böylece ekip çalışmasını basitleştirebilir ve çeşitli ortamlarda tek tip bir veritabanı şemasını koruyabilirsiniz.

Şimdi veritabanımızı kontrol edersek, ilk geçişimizden itibaren değişikliklerin veritabanı bölümüne yansıdığını görebileceğiz.

İlk geçişi gerçekleştirerek, değişiklikleri geçiş komut dosyasında tanımlandığı gibi veritabanı şemamıza uyguladık.

![Database Tables after Migration](https://drive.google.com/uc?export=view&id=1PZ6ban5h4VZs3UHQoJS_5kNYkhqs-MAx)

### NextAuthJS'yi Prisma Adaptörüyle Kurma

Next.js uygulamasında NextAuthJS, kimlik doğrulama isteklerini yönetmek için joker karakter veya geri dönüş yolu olarak da bilinen tümünü yakalama yolunu kullanır. Bu dinamik rota, Next.js'deki dosya tabanlı yönlendirme sistemi kullanılarak tanımlanır.

"**app**" dizininizin içinde "**api**" adında bir klasör oluşturun. "**api**" klasörü içinde bir "**auth**" klasörü oluşturun. "**auth**" klasörünün içinde, klasör olarak "**[...nextauth]**" adında bir tümünü yakala rotası oluşturun. Son olarak, tümünü yakala rota klasörü içinde bir "**route.ts**" dosyası oluşturun ve aşağıdaki kodu ekleyin.

```jsx
// app/api/auth/[...nextauth]/route.ts
import { PrismaAdapter } from '@next-auth/prisma-adapter';
import { PrismaClient } from '@prisma/client';
import NextAuth from 'next-auth';
import EmailProvider from 'next-auth/providers/email';

const prisma = new PrismaClient();

export const authOptions = {
  adapter: PrismaAdapter(prisma),
  providers: [
    EmailProvider({
      server: {
        host: process.env.EMAIL_SERVER_HOST,
        port: process.env.EMAIL_SERVER_PORT,
        auth: {
          user: process.env.EMAIL_SERVER_USER,
          pass: process.env.EMAIL_SERVER_PASSWORD,
        },
      },
      from: process.env.EMAIL_FROM,
    }),
  ]
};

const handler = NextAuth(authOptions);

export { handler as GET, handler as POST };

Tümünü yakalama rota dosyasında NextAuthJS kütüphanesini içe aktarıyoruz ve kimlik doğrulama seçeneklerini, sağlayıcıları ve yapılandırmaları ayarlıyoruz. NextAuthJS, gelen isteklerin ayrıştırılmasını yönetir, gerekli kimlik doğrulama eylemini tanımlar ve belirtilen seçeneklere göre uygun mantığı yürütür.

Sağlanan kod, bir e-posta sağlayıcısı kullanarak kimlik doğrulama için NextAuthJS'yi Prisma bağdaştırıcısıyla kurar. Her bir ifadeyi açıklayalım:

  1. İthalat:
  • PrismaAdapter ve PrismaClient sırasıyla @next-auth/prisma-adapter ve @prisma/client'den içe aktarılmıştır. Bunlar NextAuthJS'yi Prisma ile entegre etmek için kullanılır.

  • NextAuth, next-auth'tan içe aktarılmıştır ve Next.js uygulamalarında kimlik doğrulamayı işlemeye yönelik ana kitaplıktır.

  • EmailProvider, next-auth/providers/email'den içe aktarılmıştır ve e-posta tabanlı kimlik doğrulama için sağlayıcı olarak kullanılır.

  1. Prizma Kurulumu:
  • New PrismaClient() kullanılarak PrismaClient örneği oluşturulur. Bu, Prisma ORM ve temeldeki veritabanıyla iletişime izin verir.
  1. Kimlik Doğrulama Seçenekleri:
  • authOptions NextAuthJS'de kimlik doğrulama yapılandırmasını tanımlayan bir nesnedir.

  • adapter özelliği, PrismaAdapter kullanarak NextAuthJS'yi Prisma'ya bağlayan PrismaAdapter(prisma) olarak ayarlanmıştır.

  • providers dizisi tek bir sağlayıcı içerir: EmailProvider. Gerekli e-posta sunucusu ayrıntıları ve from e-posta adresiyle yapılandırılmıştır.

  1. Sonraki Kimlik Doğrulama İşleyicisi:
  • NextAuth işlevi, bağımsız değişken olarak authOptions ile çağrılır ve bir kimlik doğrulama işleyicisi oluşturulur.

  • Ortaya çıkan işleyici işleyici değişkenine atanır.

  1. İhracat:
  • işleyici, hem HTTP GET hem de POST isteklerini desteklemek için GET ve POST olarak dışa aktarılır.

Şimdi sunucumuzu çalıştıralım ve işlevselliğini test edelim. İlk olarak, 'yarn dev'i çalıştırarak geliştirme sunucusunu başlatın. Daha sonra tarayıcınızı açın ve uygulamayı çalışırken görmek için 'localhost:3000' adresini ziyaret edin.

Kimlik doğrulama işlevini test etmek için 'localhost:3000/api/auth/signin' adresini ziyaret edin. Burada NextAuthJS'nin büyüsünü deneyimleyeceksiniz. NextAuthJS'de sağlanan şablon, parolasız oturum açma işlemine olanak tanır. Denemek için geçerli bir e-posta adresi girin.

Passwordless Signin Input

E-postayı gönderdikten sonra NextAuthJS perde arkası sürecini yönetecektir. İlk olarak, sağlanan e-posta adresine benzersiz bir oturum açma bağlantısı içeren bir e-posta oluşturacak ve gönderecektir. Bu bağlantı, kullanıcı için güvenli bir kimlik doğrulama belirteci görevi görür. Daha sonra kullanıcı bağlantıya tıkladığında NextAuthJS belirteci doğrulayacak ve kullanıcının kimliğini doğrulayacaktır.

Signin Email

Bu parolasız oturum açma özelliği, parola ihtiyacını ortadan kaldırarak güvenliği ve kullanıcı deneyimini artırır. Kullanıcılar, e-posta yoluyla aldıkları bağlantıya tıklayarak hesaplarına hızlı ve güvenli bir şekilde erişebilirler. Oturum açma sürecini kolaylaştırır ve parolayla ilgili güvenlik açıkları riskini azaltır.

Bir kullanıcı NextAuthJS tarafından oluşturulan oturum açma e-postasını tıkladığında ve kimliği doğrulandığında, sorunsuz bir oturum açma deneyimini kolaylaştırmak için perde arkasında çeşitli eylemler gerçekleştirilir.

1. E-posta Bağlantısı Doğrulaması: Kullanıcı oturum açma bağlantısını tıkladığında NextAuthJS, bağlantıya yerleştirilmiş kimlik doğrulama jetonunu doğrular. Bu belirteç, kimlik doğrulama sürecinin güvenliğini ve bütünlüğünü sağlar.

2. Kimlik Doğrulama Süreci: Başarılı jeton doğrulamasının ardından NextAuthJS kullanıcıyı tanımlar ve kimlik doğrulama işlemini tamamlar. Sağlanan jetona ve çok faktörlü kimlik doğrulama gibi yapılandırılan ek kimlik doğrulama faktörlerine göre kullanıcının kimliğini doğrular.

3. Oturum Oluşturma: Başarılı kimlik doğrulamanın ardından NextAuthJS, kullanıcı için bir oturum oluşturur. Oturum, kullanıcının kimlik doğrulama durumunu temsil eden ve sonraki istekler için yeniden kimlik doğrulaması yapmak zorunda kalmadan korunan kaynaklara erişmesine olanak tanıyan kalıcı bir durumdur.

4. Çerezler: NextAuthJS, oturumu yönetmek için kullanıcının tarayıcısına yalnızca HTTP içeren güvenli çerezler yerleştirir. Bu çerezler, kullanıcının kimlik doğrulama durumunun birden fazla istekte korunmasında önemli bir rol oynar. Çerezler genellikle, kimlik doğrulama yapılandırmasına bağlı olarak bir oturum çerezi ve isteğe bağlı olarak bir yenileme belirteci çerezi içerir.

Cookies Set By NextAuthJS

  1. Oturum Çerezi: Oturum çerezi, kullanıcının oturumunu benzersiz şekilde tanımlayan bir oturum tanımlayıcı (ör. rastgele oluşturulmuş bir dize) içerir. NextAuthJS'nin sonraki istekleri doğru oturum ve kullanıcıyla ilişkilendirmesine yardımcı olur.

  2. CSRF Belirteç Çerezi: NextAuthJS, CSRF saldırılarına karşı koruma sağlamak için bir CSRF (Siteler Arası İstek Sahteciliği) belirteç çerezi ayarlar. CSRF belirteci, NextAuthJS tarafından oluşturulan ve çerezde saklanan benzersiz bir değerdir. Kullanıcı tarafından yapılan sonraki isteklerin doğruluğunu doğrulamak ve doğrulamak için kullanılır. Kullanıcı form gönderdiğinde veya hassas eylemler gerçekleştirdiğinde CSRF belirteci, isteğin kötü amaçlı bir kaynaktan değil, kimliği doğrulanmış kullanıcının oturumundan geldiğinden emin olmak için istek üstbilgilerine veya gövdesine eklenir.

  3. Geri Arama URL'si Çerezi: NextAuthJS, kullanıcının kimlik doğrulama akışına yönlendirilmeden önce erişmeye çalıştığı orijinal URL'yi depolamak için bir geri çağırma URL'si çerezi ayarlar. Bu çerez, NextAuthJS'nin başarılı kimlik doğrulamanın ardından kullanıcıyı istenen sayfaya geri yönlendirmesine yardımcı olur. Kullanıcıyı genel bir açılış sayfası yerine amaçlanan hedefe sorunsuz bir şekilde döndürerek sorunsuz bir kullanıcı deneyimi sağlar.

NextAuthJS, yalnızca HTTP'ye özel güvenli çerezler kullanarak, kimlik doğrulama durumunun güvenli ve kurcalanmaya karşı korumalı kalmasını sağlar. Çerezler şifrelenerek kötü niyetli kişiler tarafından yetkisiz erişim veya değişiklik yapılması engellenir.

NextAuthJS'yi Prisma bağdaştırıcısıyla Next.js uygulamanıza başarıyla entegre etme konusunda harika iş çıkardınız! NextAuthJS'nin sağladığı kolaylık ve uyarlanabilirlik sayesinde artık güvenilir bir kimlik doğrulama sistemine sahipsiniz.

Bu kılavuzda kullanılan kod için aşağıda bağlantısı verilen GitHub deposuna göz atın: https://github.com/codelabsacademy/next-auth-guide.

Ama neden burada duralım? Web geliştirme konusunda tutkuluysanız ve becerilerinizi geliştirmeye istekliyseniz, web geliştirme eğitim kampımıza başvurmayı düşünün. Eğitim kampımız, sizi web geliştirmenin dinamik dünyasında başarılı olmanız için gerekli bilgi ve pratik becerilerle donatan kapsamlı bir öğrenme deneyimi sunar.

Eğitim kampımıza katılarak en son teknolojilerle uygulamalı deneyim kazanacak, gerçek dünya projeleri üzerinde çalışacak ve sektör uzmanlarından kişiselleştirilmiş rehberlik alacaksınız. İster yeni başlayan ister deneyimli bir geliştirici olun, programımız web geliştirme becerilerinizi bir sonraki seviyeye taşımak için tasarlanmıştır.

Web geliştirme yolculuğunuzu hızlandıracak bu fırsatı kaçırmayın. Web geliştirme eğitim kampımıza bugün başvurun ve heyecan verici web geliştirme alanındaki tüm potansiyelinizi ortaya çıkarın. Birlikte muhteşem dijital deneyimler oluşturalım ve web'in geleceğini şekillendirelim.


Career Services background pattern

Kariyer Hizmetleri

Contact Section background image

İletişimde kalalım

Code Labs Academy © 2024 Her hakkı saklıdır.