, 19 min read
Pada Tutorial kali ini saya akan menjelaskan step by step setup JWT menggunakan Framework NestJS , Prisma & MySQL Database
JWT atau Json Web Token adalah slah satu metode authentikasi yang saat ini banyak digunakan untuk bermacam skema seperti Mobile, Website, Desktop karena kemudahan dan keamananya.
pada tutorial kali ini, saya akan membagikan cara mudah membuat JWT menggunakan Framework NestJS dan Prisma sebagai databasenya. kita juga menggunakan OpenAPI untuk dokumentasi API nya.
Pertama kita Install NestJS terlebih dahulu menggunakan Nest CLI untuk menginstall Nest CLI bisa menggunakan NPM dengan perintah
plaintext
setelah Nest CLI terinstall, selanjutnya kita buat project NestJS dengan perintah
plaintext
example_nest_jwt adalah nama project yang kita buat, untuk penamaan bisa dengan nama apa saja atau bebas.
pilih npm atau yarn jika kalian biasa menggunakan yarn lalu enter dan tunggu sampai proses instalasi selesai
kemudian masuk ke dalam project
plaintext
Buka project menggunakan Text Editor seperti Visual Studio Code
buat database dengan nama sama persis dengan project contohnya "example_nest_jwt"
Install prisma dengan perintah
plaintext
atau
plaintext
kemudian jalankan perintah
plaintext
setelah melakukan perintah diatas maka akan terbentuk folder prisma dan file .env
edit file .env dan sesuaikan dengan Database MySQL yang sudah kita persiapkan sebelumnya
toml
edit koneksi file "prisma/schema.prisma" ubah file provider menjadi "mysql"
apl
kemudian buat skema table User di dalam file "prisma/shcema.prisma"
apl
lebih lengkapnya seperti
apl
kemudian jalankan perintah
plaintext
atau
plaintext
perintah di atas adalah untuk menjalankan migration dari prisma membuat table dengan nama "users". kalian bisa cek di dalam database "example_nest_jwt" yang sudah kita buat sebelumnya
kemudian jalankan perintah
plaintext
atau
plaintext
kemudian test jalankan NestJS dengan perintah
plaintext
atau
plaintext
jika tidak ada error berarti kita sudah berhasil menginstall NestJS dan Prisma dengan benar.
kemudian kita kan membuat module dan service Prisma
masukan perintah
plaintext
atau
plaintext
setelah perintah di atas, akan terbentuk module baru dengan nama prisma
kemudian edit file "src/prisma/prisma.module.ts" mewnjadi seperti berikut
typescript
kemudian edit file "src/prisma/prisma.service.ts" dengan code seperti berikut
typescript
selanjutnya adalah setup JWT
Install JWT dengan perintah
plaintext
atau
plaintext
buat file "src/jwt.config.ts" yang akan menyimpan informasi JWT seperti Token dan Expired time
plaintext
setelah menginstall JWT selanjutanya kita akan buat module authentikasi dengan struktur "src/auth"
masukan perintah
plaintext
atau
plaintext
buat file di dalam "src/auth/dto/login.dto"
plaintext
buat file di dalam "src/auth/dto/register.dto"
plaintext
buat auth service, controller dengan perintah
plaintext
atau
plaintext
buat JWT Strategy "src/auth/jwt.strategy.ts"
typescript
kemudian buat guard JWT "src/auth/jwt-auth.guard.ts" atau dengan perintah
plaintext
atau
plaintext
edit file "src/auth/jwt-auth.guard.ts" menjadi seperti berikut
typescript
kemudian edit file "src/auth/auth.module.ts" menjadi
typescript
install bycript untuk mengenkripsi password kita
plaintext
atau
plaintext
buat Pipe untuk merubah password menjadi hash dengan bycript
buat file "src/auth/tranform-password.pipe.ts"
typescript
edit file "src/auth/auth.service.ts" menjadi seperti berikut
typescript
plaintext
atau
plaintext
kemudian edit file controller "src/auth/auth.controller.ts"
typescript
Selamat kita sudah bisa melakukan register, login dengan Respon JWT
Untuk mengetes API kita akan menggunakan OpenAPI
pertama adalah install OpenAPI
plaintext
atau
plaintext
kemudian edit file "src/main.ts"
typescript
edit file "src/auth/dto/login.dto.ts"
typescript
edit file "src/auth/register.dto.ts"
typescript
lalu edit file "src/auth/auth.controller.ts"
typescript
Open API berhasil di install dan di tambahkan ke auth.controller, selanjutanya kita akan test OpenAPI dengan membuka browser http://localhost:3000/openapi
selanjutnya kita bisa mencoba register menggunakan try out yang ada di openapi
Response sukses jika berhasil
Selajutnya kita akan coba login
Selamat!! kita sudah berhasil membuat API Register,Login dengan JWT.\
Untuk menggunakan Token JWT kalian bisa menambahkan di dalam Header request
contoh:
Authtehntication: "Bearer TOKEN_JWT"
Repository:
Related Posts
Testing GRPC dengan GRPCURL
gRPCURL adalah tools baris CLI yang digunakan untuk berinteraksi dengan server gRPC. Tools ini mirip dengan CURL namun dikhususkan untuk gRPC
Golang : Convert gambar menjadi teks dengan OCR
OCR, atau Optical Character Recognition, adalah teknologi yang digunakan untuk mengonversi teks dari gambar atau dokumen yang dipindai menjadi format teks yang dapat diedit dan dicari.
Convert Docx FIle To HTML Support Math Equation Using Pandoc
Pada tutorial ini, kita akan belajar bagaimana cara convert file dokumen Docx menjadi HTML secara cepat dan mudah dengan menggunakan Pandoc
Next jS Dockerize for Production With Standalone Mode
Dockerize aplikasi Next JS dengan Mode Standalone dengan ukuran yang lebih kecil
Menjalankan Next JS dengan HTTPS di Localhost
Pada tutorial kali ini saya akan membagikan cara mudah menjalankan Next JS dilocalhost dengan Https
Membuat Binary Tree Dari Flat Data Di Golang
Pada tutorial kali ini kita akan membuat binary tree didalam bahasa pemrograman Golang.
Membangun Aplikasi Desktop dengan Golang (Wails) & React
Pada tutorial kali ini, kita akan membuat aplikasi desktop menggunakan Golang(Wails) dan React.
Angular for Beginer : Memulai Project Frontend Dengan Angular 17
Angular adalah sebuah platform pengembangan web open-source yang dikembangkan oleh Google. Ini adalah framework JavaScript yang digunakan untuk membangun aplikasi web berbasis klien (client-side). Angular memberikan pendekatan terstruktur dalam pengembangan aplikasi web dengan menggunakan konsep-konsep seperti two-way data binding, dependency injection, modularitas, dan lainnya.
Nest JS : Speed Up API with Cache Redis
Meningkatkan perfoma API dengan Cache menggunakan Redis dengan contoh menggunakan Database PostgreSQL dan Prisma
Cari Tau Kemampuan Perfoma Website dan Server Dengan Load Test Menggunakan K6
Load testing adalah hal yang sangat penting dalam pengembangan perangkat lunak dan infrastruktur IT karena membantu mengidentifikasi sejumlah masalah dan meningkatkan kinerja sistem
S3CMD Cheat Sheet
s3cmd adalah alat baris perintah yang digunakan untuk berinteraksi dengan layanan penyimpanan Amazon S3 (Simple Storage Service) dari terminal atau prompt perintah pada sistem komputer di local maupun di server.
Berkenalan dengan LocalStack (Local Cloud Simulator)
LocalStack adalah platform pengembangan perangkat lunak yang digunakan untuk mengembangkan, menguji, dan menyimulasikan layanan cloud di lingkungan lokal atau non-production.
Mengenal State Management dan Kegunaanya untuk Frontend Developent
State management adalah teknik yang digunakan untuk mengelola, menyimpan, dan mengakses data atau informasi secara terpusat supaya mudah dalam mengontrol data atau informasi yang dibutuhkan.
Nest JS Micoservices with GRPC and Monorepo
Kita akan belajar bagaimana membuat aplikasi microservices menggunakan Nest JS dan GRPC menggunakan Monorepo (Single Repository)
Rate limiting Nest JS
Rate limiter adalah sebuah mekanisme yang digunakan untuk mengatur laju atau frekuensi akses terhadap suatu sumber daya atau layanan. Tujuannya adalah untuk mencegah penyalahgunaan atau kelebihan beban terhadap sistem tersebut
Install Homebrew in Linux
Cara Install Homebrew di linux (Fedora)
Apa itu Message Broker dan Apa kegunaanya?
Message broker (pialang pesan) adalah perangkat lunak yang bertindak sebagai perantara dalam mengirimkan pesan antara aplikasi atau sistem yang berbeda. Dalam arsitektur jaringan terdistribusi, message broker memfasilitasi komunikasi antara beberapa sistem dan aplikasi dengan menerima pesan dari pengirim dan meneruskannya ke penerima yang dituju
Membuat Mockup API Menggunakan JSON Server
JSON Server adalah sebuah package atau modul Node.js yang dapat digunakan untuk membuat sebuah RESTful API (Application Programming Interface) sederhana dengan menggunakan data dalam format JSON
Perbedaan Monorepo dan Multi Repo
Monorepo dan Multi Repo adalah cara kita menyimpan banyak project ke dalam suatu Repository seperti Git dengan tujuan untuk memudahkan proses Development dan pengembangan dari kode program.
Perbedaan frontend developer dan backend developer
Frontend developer dan backend developer adalah dua peran yang sangat penting dalam pengembangan aplikasi web. Perbedaan utama antara keduanya adalah area fokus dan jenis teknologi yang mereka gunakan.
Membuat API Gateway dengan Kong
Kong adalah salah satu API Gateway yang populer dipakai oleh banyak perusahaan maupun individu terutama untuk proyek berbasis Microservices
Mount Bucket S3 ke Server menggunakan S3FS-Fuse
Object Storage adalah media penyimpanan yang memiliki kapasitas yang sangat besar dengan harga yang murah di bandingkan ketika kita menyimpan file di dalam Storage SSD ataupun HDD server.
Membuat aplikasi CLI Video Reducer menggunakan Rust
Rust adalah bahasa pemrograman sistem modern yang didesain untuk kecepatan, keamanan, dan keterandalan. Bahasa ini dikembangkan oleh Mozilla Research dengan kontribusi dari komunitas open-source yang luas.
Install Docker Swarm
Docker Swarm adalah layanan orkestrasi yang disediakan oleh docker nya langsung dan untuk pembaruan sekarang sudah termasuk ketika kita menginstall docker maka docker swarm sudah tersedia bersama docker engine yang dimana sebelumnya docker swarm berdiri sendiri dan diinstall terpisah
Berkenalan dengan Markdown dan kegunaan dari Markdown
Kali ini saya akan berkenalan dengan Markdown dan kegunaan dari Markdown
Tags