Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan teknik bir eğitim içeriğidir. Eğitmen, Node.js ve Express kullanarak JWT (JSON Web Token) ile kullanıcı kayıt ve giriş sistemi oluşturma sürecini adım adım göstermektedir.
- Video, Express.js sunucusu oluşturma ve yapılandırma ile başlayıp, MongoDB veritabanı bağlantısı, model oluşturma ve controller yapısı kullanma aşamalarını kapsamaktadır. Daha sonra kullanıcı kayıt sistemi, şifreleme (salt ve hash), JWT token oluşturma ve doğrulama süreçleri detaylı şekilde anlatılmaktadır. Eğitmen, Postman kullanarak API testlerini yaparak sistemin çalıştığını göstermektedir.
- Eğitim boyunca Ronaldo ve Tayfurka gibi kullanıcı örnekleri kullanılarak token oluşturma ve doğrulama işlemlerinin sonuçları test edilmekte, ayrıca token doğrulama middleware'ı oluşturma ve kullanma adımları da gösterilmektedir. Video, web geliştiricileri için temel bir oturum açma ve kayıt sistemi oluşturma rehberi niteliğindedir.
- 00:01JWT Kullanarak Kayıt ve Login İşlemi
- Video, JWT kullanarak kayıt ve login işlemi yapmayı ve authenticate işlemi gerçekleştirmeyi amaçlıyor.
- Express jeneratör kullanılarak bir backend server ayağa kaldırılıyor.
- Gerekli kütüphaneler yükleniyor: body-parser, cors, mongoose, jwt ve parola şifreleme kütüphanesi.
- 04:22MongoDB Bağlantısı
- MongoDB database'e bağlantı kuruluyor ve bağlantı linki kopyalanıp projeye ekleniyor.
- Database bağlantısı için mongoose.connect fonksiyonu kullanılıyor.
- Kayıt yapılacak database ismi "member" olarak değiştiriliyor.
- 07:14User Model Oluşturma
- Model klasörü oluşturulup user model dosyası ekleniyor.
- User şeması mongoose.Schema kullanılarak oluşturuluyor.
- User modelinde username, email, password ve createAt alanları tanımlanıyor.
- 10:34Controller Yapısı
- Rota yapısı controller yapısına dönüştürülüyor.
- User controller dosyası oluşturulup kayıt fonksiyonu ekleniyor.
- Controller içinde response.send kullanılarak "hello from kayıt page" döndürülüyor.
- 15:13JWT ve Şifreleme Kütüphaneleri
- JWT kütüphanesi yükleniyor.
- Parola şifreleme için bcrypt kütüphanesi yükleniyor.
- Express validator kütüphanesi yükleniyor.
- 18:30Kayıt İşlemi
- Username, email ve password alanları için kontrol yapıları ekleniyor.
- Validation sonuçlarına göre hata mesajları döndürülüyor.
- Body'den gelen username, email ve password bilgileri alınarak database'e kayıt işlemi yapılıyor.
- 23:28Email Kontrolü ve Şifreleme
- Try-catch yapısı kullanılarak database'de aynı emailin olup olmadığı kontrol ediliyor.
- Eğer email varsa 401 status kodu ve "user already exist" mesajı döndürülüyor.
- Eğer email yoksa yeni user kaydediliyor ve parola bcrypt ile şifreleniyor.
- 28:33Kullanıcı Kayıt İşlemi
- Kullanıcı kaydı için hata işleme yapılandırması yapılıyor ve hata mesajları kaydediliyor.
- Kullanıcı şifresi şifrelenerek ve kullanıcı bilgileri veritabanına kaydediliyor.
- Kayıt işlemi başarılı olduğunda kullanıcıya bir token gönderilecek.
- 30:06JWT Token Oluşturma
- JWT sign metodu kullanılarak token oluşturuluyor.
- Token oluşturulurken payload kısmına kullanıcı ID'si ekleniyor.
- Eğer kayıt işlemi başarılı ise 200 durum kodu ve token ile birlikte JSON objesi döndürülüyor.
- 33:40Hata İşleme
- Kayıt işlemi sırasında hata oluşursa konsola hata mesajı yazdırılıyor.
- Hata durumunda 500 durum kodu ve "Error in saving" mesajı döndürülüyor.
- Postman kullanarak kayıt işlemi test ediliyor.
- 35:36Kayıt İşleminin Test Edilmesi
- Postman ile kullanıcı kayıt işlemi test ediliyor.
- İlk testte hata mesajı alınıyor ve kodda eksiklik tespit ediliyor.
- Kullanıcı kayıt işlemi başarılı olduğunda veritabanında kullanıcı bilgileri kaydediliyor.
- 50:52Login İşlemi
- Login işlemi için yeni bir controller fonksiyonu oluşturuluyor.
- Login rotası için yeni bir rota ekleniyor.
- Login işlemi için e-mail ve şifre alanlarının doğruluğu kontrol ediliyor.
- 54:50Login İşlemi Detayları
- Login işlemi için e-mail ve şifre body'den alınıyor.
- Try-catch bloğu kullanılarak veritabanında kullanıcı aranıyor.
- Kullanıcı bulunamazsa 400 durum kodu ve "Incorrect password" mesajı döndürülüyor.
- 58:11JWT Token Oluşturma ve Kullanımı
- Payload mantığı, bir kullanıcı giriş yaptığında hangi parametrelerin server'a gönderileceğini belirler; şifre saklı tutulurken kullanıcı adı, ID ve e-posta gibi bilgiler gönderilir.
- JWT token'ın kalma süresi (expire) belirlenir; örneğin 60 dakika (yaklaşık bir saat) olarak ayarlanabilir.
- Login işlemi yapıldığında token döndürülür ve bu token giriş işlemi için kullanıcıya verilen bir anahtar olarak işlev görür.
- 1:02:29Authentication Middleware Oluşturma
- Authentication middleware, rotalarda kullanılmak üzere oluşturulur ve JWT token'ın doğrulanması için gerekli işlemler içerir.
- Middleware'da token header'dan alınır ve boşsa "401 Unauthorized" hatası döndürülür.
- JWT verify metodu ile token'ın geçerliliği kontrol edilir ve geçerliyse token'ın içeriği request.user'e atanır.
- 1:06:45Authentication Kontrolü
- Authentication middleware, rotalarda kullanılarak kullanıcıların kimlik doğrulama durumunu kontrol edilmesini sağlar.
- Yeni bir "check" rotası eklenerek kullanıcıların token'larını kontrol edebilme imkanı sunulur.
- Token geçerliyse "kullanıcı authenticate edildi" mesajı, geçersizse "authentication error" hatası döndürülür.
- 1:09:52JWT Token Yapısı ve Kullanımı
- JWT token, kendi şifreleme yöntemine göre şifrelenir ve token'ın içerisinde kullanıcı bilgileri (name, id, e-posta) bulunur.
- Şifre (password) token'ın içerisinde şifrelenmez ve açıkça görüntülenmez, bu da kullanıcı şifrelerinin güvenliğini sağlar.
- Farklı kullanıcıların farklı token'ları vardır ve hangi token kullanılırsa o token'ın sahibinin bilgileri döndürülür.