Bu proje, kullanıcıların login (giriş yapma), register (kayıt olma), verify-email (e-posta doğrulama), password-change (şifre değiştirme), forgot-password (şifre sıfırlama), OTP (tek kullanımlık şifre) ile e-posta doğrulama, logout (çıkış yapma) işlemleri ve token oluşturma ile doğrulama gibi adımları içeren bir kimlik doğrulama sistemidir.
-
Terminal üzerinden aşağıdaki komutu çalıştırarak gerekli bağımlılıkları yükleyin:
npm install -
services klasöründeki emailService dosyasına gidin ve auth parametresinin altındaki email ve pass alanlarını doldurun:
- email: OTP ve e-posta doğrulama işlemleri için kullanılacak mail adresi.
- pass: Google hesabınız üzerinden uygulama şifresi oluşturmanız gerekmektedir. Doğrudan şifre girmek yerine uygulama şifresini kullanın.
- Projeyi başlatmak için terminalde aşağıdaki komutu çalıştırın: npm start
- Kayıt Olma (Register): Kullanıcılar e-posta ve şifre ile kayıt olabilir.
- Giriş Yapma (Login): E-posta ve şifre ile giriş yapılabilir.
- E-posta Doğrulama (Verify Email): Kayıt sonrası kullanıcının e-posta adresi doğrulanır.
- Şifre Değiştirme (Password Change): Kullanıcılar giriş yaptıktan sonra şifrelerini değiştirebilirler.
- Şifre Sıfırlama (Forgot Password): E-posta adresine gönderilen bağlantı ile kullanıcılar şifrelerini sıfırlayabilirler.
- OTP Gönderimi: Kullanıcılara tek kullanımlık şifre (OTP) ile doğrulama işlemleri yapılır.
- Çıkış Yapma (Logout): Kullanıcılar güvenli bir şekilde sistemden çıkış yapabilir.
- Token Oluşturma ve Doğrulama: Kullanıcılar giriş yaptıklarında bir token oluşturulur ve bu token kullanılarak doğrulama yapılır.
- Proje, Node.js ve Express.js üzerine inşa edilmiştir.
- E-posta doğrulama ve şifre sıfırlama işlemleri için NodeMailer kullanılmıştır.
- Kimlik doğrulama işlemlerinde JWT (JSON Web Token) kullanılmaktadır.
- MongoDB veritabanı kullanılmıştır; bağlantı için Mongoose kütüphanesi tercih edilmiştir.
Bu uygulama, kullanıcı yönetimi ile ilgili temel işlevleri sağlamak amacıyla geliştirilmiştir. Aşağıda, uygulamanın sunduğu API uç noktaları ve bunların işleyişleri açıklanmaktadır.
Açıklama: Kullanıcının çıkış yapmasını sağlar.
İşlem:
- Authorization başlığından token alınır.
- Eğer token mevcutsa, bu token
tokenBlacklist
koleksiyonuna eklenir, böylece kullanıcı oturumu kapatılmış olur.
Açıklama: Yeni bir kullanıcı kaydı oluşturur.
İşlem:
- Gönderilen veriler
userValidationSchema
ile doğrulanır. - Kullanıcı daha önce kayıtlıysa hata döner.
- Şifre bcrypt ile hashlenir.
- E-posta doğrulama token'ı oluşturulur ve doğrulama e-postası gönderilir.
- Kullanıcı veritabanına kaydedilir.
Açıklama: Kullanıcının giriş yapmasını sağlar.
İşlem:
- Gönderilen e-posta ile kullanıcı veritabanında aranır.
- Kullanıcının e-postası doğrulanmamışsa hata döner.
- Kullanıcının şifresi doğrulanır.
- Doğruysa, OTP (tek kullanımlık şifre) oluşturulur ve e-posta ile gönderilir.
Açıklama: Kullanıcının şifresini unuttuğu durumda yeni bir OTP gönderir.
İşlem:
- Gönderilen e-posta ile kullanıcı veritabanında aranır.
- Kullanıcı bulunursa, yeni bir OTP oluşturulur ve e-posta ile gönderilir.
Açıklama: Gönderilen OTP'yi doğrular.
İşlem:
- Gönderilen e-posta ve OTP kontrol edilir.
- Eğer doğruysa, login işlemi için token döner veya OTP doğrulama başarılı mesajı döner.
Açıklama: Kullanıcının şifresini sıfırlar.
İşlem:
- Kullanıcının yeni şifre ve onay şifresi kontrol edilir.
- Kullanıcı e-posta ile bulunursa, şifre hashlenir ve güncellenir.
Açıklama: E-posta doğrulama işlemi için token'ı kontrol eder.
İşlem:
- Token'ın geçerliliği kontrol edilir ve daha önce kullanılıp kullanılmadığı kontrol edilir.
- Token geçerli ise, kullanıcının e-postası doğrulanır ve kullanıcı veritabanında güncellenir.
Bu API uç noktalarını kullanarak kullanıcı kaydı, giriş işlemleri, şifre sıfırlama gibi işlemleri gerçekleştirebilirsiniz. Her bir işlem, ilgili açıklamalara ve işleyiş adımlarına göre yapılmalıdır.
- Node.js
- Express
- Bcrypt
- JSON Web Token (JWT) gibi gerekli paketler.