NodeJS API - Auth Lanjutan

Verifikasi Token

Ketika kita mengakses API /auth/login, server akan memberikan response berupa token.

Token ini akan digunakan untuk mengakses API misalnya /mahasiswa.

Token untuk mengakses API perlu diverifikasi terlebih dahulu. Untuk melakukan verifikasi, kita perlu menambahkan file verifyToken.js, kita simpan di dalam folder config saja

verifyToken.js
const jwt = require('jsonwebtoken')
const verifyToken = (req, res, next) => {
    const token = req.header('Authorization')
    if (!token) return res.status(400).json({
        status: res.statusCode,
        message: 'Access denied'
    })

    try {
        const verified = jwt.verify(token, process.env.SECRET_KEY) // verify
        res.user = verified
        next() // melanjutkan proses berikutnya
    } catch (error) {
        res.status(400).json({
            status: res.statusCode,
            message: 'Invalid token'
        })
    }
}

module.exports = verifyToken

Kemudian buka file routes/mahasiswa.js, tambahkan import verifyToken dan tambahkan verifyToken pada router

mahasiswa.js
// import package
const express = require('express')
const router = express.Router()

// import Model 
const Mahasiswa = require('../models/Mahasiswa')

// Import verifyToken
const verifyToken = require('../config/verifyToken')

// Read
router.get('/', verifyToken, async(req, res) => {
    try {
        const mahasiswa = await Mahasiswa.find()
        res.json(mahasiswa)
    } catch (error) {
        res.json({message: error})
    }
})

Modifikasi app.js

Buka file app.js, lalu import routes/auth, dan daftarkan ke express

const authRoutes = require('./routes/auth')
app.use('/auth', authRoutes)

Pengujian API Auth Register dan Login di POSTMAN

API Auth Register Berhasil
API Auth Register Gagal, karena email sudah terdaftar
API Auth Login Berhasil
API Auth Login Gagal, karena password salah

Last updated

Was this helpful?