NodeJS API - Auth

Schema

Buat schema baru dengan nama User.js di dalam folder models

User.js
// (1) Buat Schema User
const mongoose = require('mongoose')

const UserSchema = mongoose.Schema({
    // Schema data
    nama: {
        type: String,
        required: true,
        max: 45
    },
    email: {
        type: String,
        required: true,
        max: 45
    },
    password: {
        type: String,
        required: true,
        min: 6,
        max: 255
    },
    createdAt: {
        type: Date,
        default: Date.now
    }
})

module.exports = mongoose.model('User', UserSchema)

Instal Package

Instal package @hapi/joi bcryptjs jsonwebtoken

@hapi/joi sebagai validator data, misalnya email wajib diisi, password minimal 6 karakter

bcryptjs merupakan password-hashing function digunakan untuk enkripsi data Contoh: input password 123456 setelah dilakukan hashing menjadi $2a$10$TfsU4ldw4cFwbARdOBwvCOGSEJ6qFelg6L3rAVCcqqrH0QqzSmwXW

jsonwebtoken digunakan sebagai sistem otentikasi. Ketika kita login ke server melalui API, server akan memberikan response berupa token, lalu token ini kita gunakan untuk mengakses API lainnya yang bisa akses menggunakan token tersebut.

Validator

Buat folder baru dengan nama config, lalu buat file baru dengan nama validation.js

Routes

Buat file baru dengan nama auth.js di dalam folder routes

Modifikasi File .env

Tambahkan SECRET_KEY pada file .env. SECRET_KEY ini digunakan pada proses membuat token pada auth.js

Last updated

Was this helpful?