takaeru-express-auth
v1.0.3
Published
Auth Node.js Package adalah sistem autentikasi berbasis Node.js + Express.js
Maintainers
Readme
Auth Node.js Package
🚀 Auth Node.js Package adalah sistem autentikasi berbasis Node.js + Express.js dengan dukungan:
SSO (Single Sign-On)
Login menggunakan Google, Facebook, dan Apple ID
JWT authentication
Prisma sebagai ORM
Rate limiter untuk mencegah serangan brute force
✨ Fitur
✅ Register & Login dengan JWT Authentication
✅ SSO menggunakan Google, Facebook, dan Apple
✅ Rate limiter (blokir percobaan login setelah 5 kali gagal)
✅ Mendukung Form-Data dan JSON
✅ Menggunakan Prisma ORM untuk PostgreSQL/MySQL
📦 Instalasi
1️⃣ Clone Repository
git clone https://gitlab.com/takaeru-packages/express-auth-package
2️⃣ Install Dependencies
npm install
atau jika menggunakan Yarn:
yarn install
3️⃣ Buat File .env
Buat file .env di root proyek:
# Database
DATABASE_URL="postgresql://username:password@localhost:5432/auth-node?schema=public"
# JWT
JWT_SECRET="your-secret-key"
# Google OAuth
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
GOOGLE_CALLBACK_URL="http://localhost:5000/auth/google/callback"
# Facebook OAuth
FACEBOOK_CLIENT_ID=""
FACEBOOK_CLIENT_SECRET=""
FACEBOOK_CALLBACK_URL="http://localhost:5000/auth/facebook/callback"
# Apple OAuth
APPLE_CLIENT_ID=""
APPLE_TEAM_ID=""
APPLE_KEY_ID=""
APPLE_PRIVATE_KEY_PATH=""
APPLE_CALLBACK_URL="http://localhost:5000/auth/apple/callback"🚀 Menjalankan Proyek
1️⃣ Jalankan Prisma Migration
npx prisma migrate dev --name init
2️⃣ Jalankan Server
npm run dev
atau dengan Yarn:
yarn run dev
Server akan berjalan di http://localhost:5000 🚀
🛠️ API Endpoints
📝 Register
Endpoint: POST /auth/register
Request Body:
{
"email": "[email protected]",
"password": "mypassword123"
}Response:
{
"id": 1,
"email": "[email protected]"
}🔐 Login
Endpoint: POST /auth/login
Request Body:
{
"email": "[email protected]",
"password": "mypassword123"
}Response (Berhasil Login):
{
"token": "jwt-token-here",
"user": {
"id": 1,
"email": "[email protected]"
}
}Jika gagal lebih dari 5x dalam 1 menit:
{
"error": "Too many failed login attempts. Please try again in 1 minute."
}🔑 Google Login
Endpoint: GET /auth/google
Callback: GET /auth/google/callback
Response:
{
"id": 1,
"email": "[email protected]",
"provider": "google"
}📘 Facebook Login
Endpoint: GET /auth/facebook
Callback: GET /auth/facebook/callback
Response:
{
"id": 1,
"email": "[email protected]",
"provider": "facebook"
}🍏 Apple Login
Endpoint: GET /auth/apple
Callback: GET /auth/apple/callback
Response:
{
"id": 1,
"email": "[email protected]",
"provider": "apple"
}📜 Lisensi
Proyek ini dilisensikan di bawah MIT License.
📧 Kontak & Kontribusi
Jika Anda memiliki pertanyaan atau ingin berkontribusi, silakan buka Issue atau lakukan Pull Request di GitHub repository ini.
🚀 Selamat Coding! 🎉
