JWT Auth: Konsep & Implementasinya (BE & FE) yang Aman 🛡️

Поділитися
Вставка
  • Опубліковано 8 вер 2024

КОМЕНТАРІ • 102

  • @pekcuy7885
    @pekcuy7885 7 місяців тому +5

    nah ini nih penjelasan sekaligus di kasih contoh yang mudah dipahami, thanks bang

  • @Yusran_Uca
    @Yusran_Uca 11 днів тому

    Sangat effort sekali penjelasannya , barakallahu

  • @sonyboy5290
    @sonyboy5290 28 днів тому

    Respect dgn penjelasan anda bang. Sangat gampang untuk dimengerti. Terimakasih.

  • @joan8380
    @joan8380 24 дні тому

    nice +1
    youtuber about coding from indo yg gua suka

  • @mdikrykurniadi9369
    @mdikrykurniadi9369 8 місяців тому +1

    Keren, langsung ngerti, cocok bnget buat saya yg tipe visual

  • @sendyjoan8212
    @sendyjoan8212 Рік тому +1

    Membantu banget mas kontennya. Semangat bikin konten lagi mas!

  • @alwanar5546
    @alwanar5546 Рік тому +1

    Bagus bang, jadi ngerti konsepnya. request bang penjelasan alur penyimpanan images saat input form itu bagusnya di server atau cloud

  • @skidipap6673
    @skidipap6673 Рік тому +3

    sekedar sharing saja, di tempat saya implementasi JWT nya untuk refresh_token dirolling. Jadi ketika client minta token baru akan return data acces_token, dan refresh_token yang baru. Jadi refresh_token selalu dirolling dan akan berbeda-beda ketika meminta acces_token baru

    • @muhammadaryomuzakki
      @muhammadaryomuzakki Рік тому

      Kalau dirolling gitu, refresh tokennya dikasih expired date berapa lama ya bg?

    • @zaki8527
      @zaki8527 Рік тому

      kalo udh di refresh gitu, token yang sebelumnya masih bisa dipake ga bang? walaupun belum expired

    • @skidipap6673
      @skidipap6673 Рік тому

      @@zaki8527 acces token Dan refresh token sebelumnya tidak bisa dipake karena masuk ke blacklist token

    • @zaki8527
      @zaki8527 Рік тому

      @@skidipap6673 caranya gimana tu bang, pake redis kah?

    • @skidipap6673
      @skidipap6673 Рік тому

      @@zaki8527 iya, blacklist token disimpan di database ataupun cache

  • @aditirajamhuri2634
    @aditirajamhuri2634 2 місяці тому

    Bang, video abang yang ini bagus asli.

  • @user-rc7zw2ko8n
    @user-rc7zw2ko8n 3 місяці тому

    terima kasih, animasinya keren
    jadi penjelasannya sangat mudah dipahami

  • @malamhari_
    @malamhari_ Рік тому

    Ini dia video yang ditunggu-tunggu, jadi paham tentang JWT
    Makasih gan

    • @afifu
      @afifu  Рік тому

      Sama2 gan 😁🙏

  • @mochamadsyahrulakbar8850
    @mochamadsyahrulakbar8850 Рік тому

    Teriakasih mas afif, penjelasannya ringan dengan bahasa yang mudah dipahami🙌

    • @afifu
      @afifu  Рік тому

      Thank you.. 😁🙏

  • @BukanSiiinchan
    @BukanSiiinchan Рік тому

    mantap bang akhirnya sy ngerti kenapa ada access token dan refresh token 👊🏻👊🏻👊🏻

  • @kanade___chan
    @kanade___chan 3 місяці тому

    amjay, mantep dan agak mudah dipahami... gg bang

  • @danihaikal9292
    @danihaikal9292 6 місяців тому +2

    makash banyak bang, sangat bermanfaat sekali,
    sering sering bikin pembahasan kaya gini bg, biar paham dulu sebelum develop🥲🥲🙏
    mau nanya dong bang, kalo mekanisme Logout bagaimana ya? apakah dibuatkan api juga di backend untuk hapus cookie dan refresh tokenya?

    • @afifu
      @afifu  6 місяців тому +1

      Iya, utk logout ada APInya utk menghapus cookie & refresh-token ✅
      Seperti di menit 11:19

    • @danihaikal9292
      @danihaikal9292 6 місяців тому +1

      @@afifu ok makash banyak bg😁

  • @eriscapricron4725
    @eriscapricron4725 Рік тому

    Sering sering bikin konten seperti ini bang sangat informatif dan mudah dipahami

    • @afifu
      @afifu  Рік тому

      Thank you 😁🙏

  • @codingpanda6891
    @codingpanda6891 Рік тому +1

    Thx bg ilmu yg sangat bermanfaat

    • @afifu
      @afifu  Рік тому

      Thank you 😁🙏

  • @airdrop_chroncles
    @airdrop_chroncles 4 місяці тому

    Gile, cara penjelasanya mantep poll...

  • @eserranda1248
    @eserranda1248 3 місяці тому

    makasih bang, penjelasannya mudah di pahami

  • @MrBigBlackClock
    @MrBigBlackClock 3 місяці тому

    Mantap Langsung Ngerti

  • @aliif
    @aliif Рік тому +2

    terimakasih mas videonya bagus tapi kali ini menurut saya agak kurang lengkap materinya seperti bagian terpenting dalam jwt yaitu expired at dan issued at dalam payload dan fungsi nya masing2 dalam berbagai strategi auth nya

    • @afifu
      @afifu  Рік тому +2

      Hehee mungkin nanti bisa lanjut di part 2.
      Thanks buat feedbacknya 😁👍

    • @Danzz_0_0
      @Danzz_0_0 5 місяців тому

      agak kurang dikit bang, kayak asbabul nuzul jwt, agak bingung konsep refresh token, jwt yg pakai reffesh token itu yg di payload tidak ada iat kah? atau hanya menpermudah auth server tidak perku login ulang hanya menunjukan toker refresh?
      menarik saya user sebuah aplikasi yg menggunakan sso,, token bisa dipakai terus utk komunikasi ke server menu jika menggunakan fetch, post atau ajax, tidak di direct ke sso login, atau menolak req, kalau pakai halaman aslinya dia sudah gak feaktif dan ketika refresh du lenpar ke sso

    • @aliif
      @aliif 5 місяців тому

      sepertinya jwt itu ada karena kebutuhan stateless pada saat proses auth sehingga backend gak perlu query ke db terus untuk validasi token nya pada tiap request@@Danzz_0_0

  • @taufik__unxp
    @taufik__unxp 2 місяці тому

    masyaAllah keren

  • @MRXbef
    @MRXbef 3 місяці тому

    gw stuck gara2 ini makasi bang udah ada gambaran

  • @aldhyx
    @aldhyx Рік тому

    Keren, sangat mudah dimengerti 🔥 thank you gan

    • @afifu
      @afifu  Рік тому

      You're welcome gan 😁🙏

  • @muhamadardalepa23
    @muhamadardalepa23 2 місяці тому

    mantap bang

  • @cepbanu6774
    @cepbanu6774 8 місяців тому

    Haturnuhun..

  • @irezpratama90
    @irezpratama90 5 місяців тому

    Mantap...

  • @AndersonKunadi-jc1ze
    @AndersonKunadi-jc1ze Місяць тому

    gokil bg 👌

  • @Ndrainz
    @Ndrainz Рік тому +1

    Makasih bang

    • @afifu
      @afifu  Рік тому

      Ya, sama2 bang 😁🙏

  • @dirompurbowiseno9970
    @dirompurbowiseno9970 Рік тому

    Makasih bang , sangat bermanfaat

    • @afifu
      @afifu  Рік тому

      Thank you 😁🙏

  • @hierarki
    @hierarki Рік тому

    mantap bang lanjutt

  • @rendraandriansyah3046
    @rendraandriansyah3046 Рік тому

    nice content bang 9 videonya keren keren semua

    • @afifu
      @afifu  Рік тому

      Thank you~ 🙏😁

    • @rendraandriansyah3046
      @rendraandriansyah3046 Рік тому

      @@afifu jangan thank you aja bang, tambah lagi dong kontennya wkwk

  • @rohanarohana4474
    @rohanarohana4474 Рік тому

    Makasih ya bang

  • @danihaikal9292
    @danihaikal9292 6 місяців тому +1

    mau nanya bg, untuk request access token baru pake refresh token apa harus dibuat API nya juga? atau di sisipin aja di middleware verifyToken pas tau kalo access tokenya gagal

  • @Coolmenad
    @Coolmenad 4 місяці тому +1

    contoh bang di web tampilan nya nya

  • @fahrisajaaa
    @fahrisajaaa Рік тому

    Makasih bang🤙

    • @afifu
      @afifu  Рік тому

      Yoi, sama2 😁🙏

  • @sigitpratama1016
    @sigitpratama1016 Рік тому

    Mantap mas konseptualnya, mudah dipahami. Kalo utk implementasinya teknis nya punya rekomendasi sumber pembelajaran ga mas?

    • @afifu
      @afifu  Рік тому

      Kalo utk teknisnya saya gak ada rekomendasi spesifiknya dr mana.
      Bisa googling, cari di UA-cam, atau tanya ke ChatGPT.
      Kalo menurut saya, selama udah ngerti BE-FE, maka yg dibutuhkan sekedar cari librari utk create & validate JWT.
      Jadi dg modal pengetahuan BE-FE & konsep JWT auth, bisa bikin API sendiri, setup db sendiri, dan tinggal pakai aja library JWTnya 😁

  • @johandikasyahputralubis2455

    Buat video lagi dong bang.

  • @alfiandm5782
    @alfiandm5782 15 днів тому

    Tapi bang bukannya JWT token itu fungsinya agar menperlancar proses kecepatan di server side ya kalau dilakukan penyimpanan token didatabase sesuai cara ke-2 bukannya sama aja gk pakai JWT tapi pakek session biasanya

    • @afifu
      @afifu  14 днів тому

      @@alfiandm5782 Yups memang tetep perlu cek db, tp hanya auth service, dan cek db nya hanya dilakukan 10 menit sekali.
      Di service lain itu gak perlu cek db, cukup cek JWT aja.
      Tambahan: JWT itu solve problem yg saya jelaskan di 4:45 (ini terjadi di penggunaan session token)

  • @QuarterBite
    @QuarterBite Рік тому +1

    Bang mau tanya. Untuk Access Token dan Refresh Token itu idealnya expired dalam kurun waktu berapa lama ya?

    • @afifu
      @afifu  Рік тому +2

      Access token expirednya brp lama?
      Ini udah terjawab di menit 09:56 ya...
      Refresh token expirednya brp lama?
      Tergantung, kamu pengennya user gak pernah logout,
      atau dlm waktu sebulan auto logout (artinya user harus login tiap bulan), atau dlm waktu seminggu auto logout, atau gimana?
      Sesuaikan dengan kebutuhan

  • @muhammadnizwa
    @muhammadnizwa 5 місяців тому

    bagaimana jadinya kalau kita sign session id ke dalam jwt lalu jwt simpan ke cookie?

    • @afifu
      @afifu  4 місяці тому

      Maksudnya session-based authorization, tp sessionnya bentuknya JWT kah?
      Balik lagi, issuenya session-based itu spt yg disampaikan di 4:44
      Semoga terjawab 🙏

  • @user-gf3pk9oj8z
    @user-gf3pk9oj8z 4 місяці тому

    Bang saya punya pertanyaan untuk konsep refresh token. kan access token cuma aktif 10 menit dan expired. kalau saya request untuk me refresh access tokennya pada 10 menit lewat 30 detik, apakah akan di refresh kan? atau di tolak dan suruh login ulang?

    • @afifu
      @afifu  4 місяці тому

      Ketika me-refresh token, yg dicek adalah apakah refresh tokennya valid.
      Bisa sekedar dicek validity-nya aja, atau dicek jg expiry time dari refresh-tokennya.
      Gak masalah access-tokennya udah expired.

    • @user-gf3pk9oj8z
      @user-gf3pk9oj8z 4 місяці тому

      @@afifu baik bang,, jadi 10 menit expired dari access token itu sebenarnya hanya untuk validasi refresh tokennya saja ya.
      terima kasih pencerahannya bang.

    • @user-gf3pk9oj8z
      @user-gf3pk9oj8z 4 місяці тому

      @@afifu bang , kalau tidak keberatan, bahas microservices dan konsep penyebaran JWT agar seluruh aplikasi pada microservices punya JWT terbaru.. terima kasih

  • @muhammadalfit5149
    @muhammadalfit5149 3 місяці тому

    om , akses token ada expired misal 3 menit, Ketika expired berarti generate token baru dong, jadi setiap respon, di siapkan untuk token baru nya ya?

    • @afifu
      @afifu  3 місяці тому

      Q: Ketika expired berarti generate token baru dong?
      A: Iya
      Q: Jadi setiap response disiapkan token barunya ya?
      ^Ini maksud pertanyaannya gimana?

    • @muhammadalfit5149
      @muhammadalfit5149 3 місяці тому

      @@afifu aplikasi saya (mobile), jika user tidak mengakses aplikasi lebih dari 3 menit maka akan ke keluar.
      logic saya begini,
      ketika expired di jwt berubah, maka token berubah kan ya?
      misal, setiap request, saya tambah expired 3 menit, maka token berubah(baru) dengan expired + 3 menit
      jadi, di setiap request, bakal ada respon token baru nya.
      Best pratictice nya gimana ya mas?

    • @afifu
      @afifu  3 місяці тому

      @@muhammadalfit5149 pengecekan user logged-in dr refresh-token

  • @BurhanuddinSyuhud
    @BurhanuddinSyuhud 3 місяці тому

    Bang Afif, mau tanya kalau jwt nya bisa dipakai user lain selama belum expired apakah bisa ya. terima kasih banyak.

    • @afifu
      @afifu  3 місяці тому

      Bisa,
      seperti yg di penjelasan 10:48
      Di situ orang lain pakai token seseorang

    • @BurhanuddinSyuhud
      @BurhanuddinSyuhud 3 місяці тому

      @@afifu makasih bang afif

  • @user-vb4os6kq3q
    @user-vb4os6kq3q 10 місяців тому

    Izin nanya bang, untuk nyimpen refresh token di db nya, apakah 1 user hanya memiliki 1 refresh token, atau bisa banyak?

    • @afifu
      @afifu  4 місяці тому

      Tergantung kebutuhan: apakah user bisa login di beberapa device?
      Jika iya, maka di 1 user tsb bisa punya lebih dr 1 refresh-token

  • @helpsleepingrelax3071
    @helpsleepingrelax3071 Рік тому

    Bang kalo semisal token yg dikasih oleh response login untuk set header, kita simpan di cookie gimana, saolnya kalo dilocalStorage gak bisa di akses oleh SSR ya khusunya nextjs betulkah begitu?

    • @afifu
      @afifu  Рік тому +1

      Iya localStorage gak bisa diakses di server ketika pake strategi SSR ✅
      Iya, bisa pake cara tsb, taro di cookie biar tokennya auto dikirim ke server gan

    • @Danzz_0_0
      @Danzz_0_0 5 місяців тому

      saya nemu aplikasi menggunakan double, cookies dan local storage, dan kirim authorizastion utk cookies, yg di local storage fi header X-CSRFTOKEN. berhub itu aplikasi input data ribuan saya terpaksa input by script krn halaman input saja belum tentu load sempurna krn aksesnya lagi tinggi dan wajib dan lagi periode penginputan. aplikasi pakai vue js, utk handle post and update info page

  • @labkita
    @labkita 8 місяців тому

    apakah bisa data cookie, localstorage atau session storage di curi pada suatu website A, ketika kita mengunjungi website B, misal menggunakan javascript ?

    • @afifu
      @afifu  8 місяців тому

      Gak bisa..
      Website B gak punya akses utk melihat/mengedit/menghapus/menambah data cookie/localStorage/sessionStorage dr website A.

    • @labkita
      @labkita 8 місяців тому

      @@afifu klo subdomain gmn ? misal kita kunjungin web parent domain, trs kita kunjungi jg subdomain, apakah yg di parent domain bisa d curi ?

    • @afifu
      @afifu  8 місяців тому

      @@labkita gak bisa jg,
      web vercel.com gak punya hak akses ke storage dr abc.vercel.com

    • @labkita
      @labkita 8 місяців тому

      @@afifuklo begitu pencurian data cookie lebih ke keperluan untuk ads aja ya kebanyakan, selain kesalahan penyimpanan data yg seharusnya di server

    • @afifu
      @afifu  8 місяців тому

      @@labkita penurian data cookie itu pakenya XSS attack, dan tujuannya buah nge-hack.
      Kalo ads, itu bukan mencuri, dan itu ada mekanismenya sendiri (bukan XSS)

  • @rivntlewrient2787
    @rivntlewrient2787 Рік тому

    jadi pengecekan username dan password di database itu pake pengecekan biasa aj yh? kalo benar nnt di return jwt token gitu?,apa berlaku ke semua bahasa

    • @afifu
      @afifu  Рік тому

      Proses authentikasinya gimana itu memang gak saya bahas di video ini mas, 03:09

  • @handyrezaalf3282
    @handyrezaalf3282 Рік тому

    Berarti proses meminta ulang access token itu dilakukan secara otomatis ketika access token kadaluarsa ya bang dan kita juga perlu buat endpoint khusus buat refresh tokenya begitu ?

    • @afifu
      @afifu  Рік тому

      Proses meminta akses token baru ini bisa ada 2 kemungkinan:
      * Bisa saat expired langsung request yg baru.
      * Bisa jg nunggu user mau melakukan request ke resource lain.
      Terserah sih mau yg mana..
      Iya betul, perlu endpoint utk nge-request akses token baru.

    • @handyrezaalf3282
      @handyrezaalf3282 Рік тому

      @@afifu Ok bang terimakasih infonya

  • @tutorial2menit881
    @tutorial2menit881 10 місяців тому

    secret keynya password nascar rumble

  • @wellmeetguys8364
    @wellmeetguys8364 Рік тому

    Makasih bang

    • @afifu
      @afifu  Рік тому

      Yoi, sama2 bang 😁🙏