Agen Terpercaya  
 
 
 
 
Pasang iklan, hanya lewat Contact Us.
Waspada penipuan iklan. Klik di sini untuk melihat daftar penipu.

SHARE RESTful API untuk Register dan Login

zr13

Semprot Kecil
Daftar
5 Apr 2023
Post
64
Like diterima
17
Bimabet
Hallo Suhu semuanya semoga kita selalu dalam keadaan sehat walafiat, ini merupakan dokumentasi ane yang sedang belajar.
Pada thread ini yaitu bagaimana cara membuat RESTfull API untuk Register dan Login menggunakan Express.js dan MongoDB, ada beberapa langkah yang perlu diikuti. Pastikan Anda sudah menginstal Node.js dan MongoDB sebelum memulai. Berikut adalah tutorial langkah demi langkahnya:

Langkah 1: Persiapan Projek
  1. Buat folder untuk projek dan masuk ke dalamnya melalui terminal atau command prompt.
  2. Inisialisasi projek Node.js dengan perintah berikut:
    Bash:
    npm init
    1. Install beberapa dependensi yang akan digunakan (Express.js, MongoDB driver, dll):
    2. Bash:
      npm install express mongoose bcryptjs jsonwebtoken body-parser
Langkah 2: Membuat Struktur Projek
Struktur folder projek yang sering saya gunakan sebagai berikut:
Markdown (GitHub flavored):
- your_project_folder
    - node_modules
    - src
        - models
            - User.js
        - routes
            - auth.js
        - index.js
    - .env

Langkah 3: Konfigurasi Database
  1. Buat akun MongoDB atau pastikan Anda sudah memiliki satu.
  2. Buat file .env di folder projek dan tambahkan informasi koneksi database MongoDB:
  3. Bash:
    MONGODB_URI=mongodb://username:password@host:port/database_name
    SECRET_KEY=your_secret_key_for_jwt
Langkah 4: Membuat Model User
Buka file User.js di folder models dan tambahkan kode berikut untuk mendefinisikan model User:
JavaScript:
const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  username: { type: String, required: true, unique: true },
  password: { type: String, required: true },
});

const User = mongoose.model('User', userSchema);

module.exports = User;

Langkah 5: Membuat Routes untuk Register dan Login
Buka file auth.js di folder routes dan tambahkan kode berikut untuk menangani registrasi dan login:
JavaScript:
const express = require('express');
const router = express.Router();
const bcrypt = require('bcryptjs');
const jwt = require('jsonwebtoken');
const User = require('../models/User');

// Route untuk registrasi pengguna
router.post('/register', async (req, res) => {
  try {
    const { username, password } = req.body;

    // Cek apakah username sudah ada dalam database
    const existingUser = await User.findOne({ username });
    if (existingUser) {
      return res.status(400).json({ message: 'Username already exists' });
    }

    // Hash password menggunakan bcrypt
    const hashedPassword = await bcrypt.hash(password, 10);

    // Buat user baru dalam database
    const newUser = new User({
      username,
      password: hashedPassword,
    });

    await newUser.save();

    res.status(201).json({ message: 'User registered successfully' });
  } catch (error) {
    res.status(500).json({ message: 'Error registering user' });
  }
});

// Route untuk login pengguna
router.post('/login', async (req, res) => {
  try {
    const { username, password } = req.body;

    // Cari pengguna berdasarkan username dalam database
    const user = await User.findOne({ username });
    if (!user) {
      return res.status(400).json({ message: 'Invalid username or password' });
    }

    // Periksa kecocokan password menggunakan bcrypt
    const isPasswordMatch = await bcrypt.compare(password, user.password);
    if (!isPasswordMatch) {
      return res.status(400).json({ message: 'Invalid username or password' });
    }

    // Buat token JWT untuk otentikasi
    const token = jwt.sign({ userId: user._id }, process.env.SECRET_KEY);

    res.json({ token });
  } catch (error) {
    res.status(500).json({ message: 'Error logging in' });
  }
});

module.exports = router;

Langkah 6: Membuat Server
Buka file index.js dan tambahkan kode berikut untuk membuat server dan menghubungkannya dengan MongoDB:
JavaScript:
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const dotenv = require('dotenv');
const authRoutes = require('./routes/auth');

dotenv.config();
const app = express();
const PORT = process.env.PORT || 3000;

// Menghubungkan ke database MongoDB
mongoose.connect(process.env.MONGODB_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useCreateIndex: true,
}).then(() => {
  console.log('Connected to MongoDB');
}).catch((err) => {
  console.error('Error connecting to MongoDB:', err.message);
  process.exit(1);
});

app.use(bodyParser.json());

// Route untuk registrasi dan login
app.use('/api/auth', authRoutes);

app.listen(PORT, () => {
  console.log(`Server started on port ${PORT}`);
});

Jangann lupa tambahkan ini pada 'package.json'
Instal dahulu
Bash:
npm install nodemon dotenv
JSON:
    "start": "node src/index.js",
    "dev": "nodemon src/index.js"

Langkah 7: Menjalankan Aplikasi
Jalankan aplikasi dengan perintah berikut:
Bash:
npm run dev

Selanjutnya tinggal coba pada postman :


Kemudian coba endpoint Login :
  1. Jika Username dan Password salah:
  2. Ketika Berhasil

Mungkin hanya segitu saja yang saya sampaikan, mohon maaf atas kekurangannya. Terima kasih
Mari diskusi suhu semua jika berkenan

:Peace:
 
Jav Toys
Gaple Online Indonesia
Pasang iklan hanya lewat CONTACT US
Back
Top
We are now part of LS Media Ltd