Keren dah, seperti biasa selalu mudah dimengerti. Kalo mau lebih dalam lagi, bisa share juga header standar JWT contohnya untuk token generatenya kapan dan akan expire sampai kapan.
kesalahan yang sering terjadi, passing informasi sensitif di payload JWT, which is yang awalnya secure jadi tidak secure. karna itu, jangan pernah store sensitive information di payload JWT mantep 🤘
mantap pak, lanjutan video sebelumnya nih. Terima kasih pencerahannya pak, sangat menjawab pertanyaan saya sebelumnya, juga jadi tau kenapa pake JWT, ternyata biar ngak banyak tektokan antara service dengan auth server. semoga berkah terus ilmunya Pak, daging terus ini yang di share kalau boleh minta share best practice alur untuk implementasi refresh token dong Pak, yang biasanya ada di JWT, kalo ada course lengkap JWT nya boleh juga 🔥🔥🔥
Setauku Refresh Token tuh scopenya OAuth sih. Kalo saya implementasinya biasanya random string aja and disimpen di db aja, dan dibalikin juga pas proses authentication bareng AccessToken. Kalo ada implementasi pakai JWT untuk refresh token, boleh juga tuh.
19:11 oleh karena itulah bila ada informasi yang sensitif seperti password atau card_number / cvv / expired date di lanjutkan lah ke materi selanjutnya yaitu JWE om . . boleh lah dibahas om materi JWE/JWK/JWA :D
Lanjut bahas cara invalidate access token JWT yang belum expired, Pak. Misal, ketika user logout, atau mencegah akses ke resource server ketika access token JWT-nya bocor.
maap oot dikit. misal app saya itu dashboard dan itu pakai react. apakah wajar jika setiap refresh itu hit ke /me agar dapat nama,email. dan mungkin ada yang lainya lagi yg di hit hanya untuk mendapatkan object nyaris static(jarang berubah) seperti user gitu. aku kepikiran si pake redis jd pas login simpen data user di redis sekaligus tokenya dan apus datanya jika logout, tp misal kalo yg login bersamaan itu banyak. mahal juga kayanya service redis (belum pernah ampe deploy si) apa emang di industri untuk case yang kaya gini tuh ya biarin aja emang ngehit terus dia. edited: udah nemu dari gpt. katanya biarin aja emang hit terus. untuk di fe bisa pake state management aja gpp, kalo refresh ya hit lg tp kalo pindah halaman kan ga refresh jd state masih ada alias hidup. kalo ada saran lain mohon pencerahanya🙏
mas eko. di menit 6:29 kan itu secret key nya disimpan di resource server dan authorization server. kalau semisal nanti client nya iseng minta token nya langsung dari resource server apakah tidak apa apa mas?
resource server punya data user, email, password dll om? ko minta token ke resource server. kalau 1 tempat sih, ga masalah. soalnya auth, rosource nya 1 tempat.
kereeen Mas Eko, Kalau semisal ada server untuk menangani transaksi dan perlu relasi dengan data yang di auth server, bagaimana cara mengambil data tersebut dengan relasi nya? atau di transaksi lebih baik disimpan dengan data usernya juga?
Kak anak sy umur 6thn. Tp sy liat dy ada ksempatan buat jd programmer krn iqNa d atas ank² lain sebayaNa. Dsni Gx ush sy jlasin lh klebihan dy. Sy cma mw brtnya Gmna yh kak cara ngasah kedepanNa krn kami slaku org tua buta mslh programmer. Dan tdk ada pndukung lainNa.
Kalau misalnya saya encrypt jsonnya (ada data exp time) dengan aes256 dengan iv dan keynya static apakah bisa lebih secure dan lebih oke ga ya pak? karena concernnya jwt dapat di decode dengan mudah
pak eko, semisal acc tokennya kita terima dari server, terus simpan di client cookie, walaupun jwt aman. apa perlu kita encrypt waktu simpan di cookie?
@@ProgrammerZamanNow kebetulan yang saya simpan di jwt itu “id”, mau itu userId atau yang bertentangan sama user. saya mikirnya apa itu boleh/gaboleh diliat orng. makasih pak responnya 👍👍
Pak mau bertanya seputar JWT, best pracitce nya expired access token dan refresh token itu berapa lama? saya waktu belajar di internet biasanya access token dikasih expired nya sebentar kayak 15s sampe 1 menit, sedangkan untuk refresh token sekitar 1 jam atau sampe ber hari hari. Nah pertanyaan nya, kalo misalkan access token nya sebentar gitu kan harus generate ulang terus setiap access token nya expired (biasanya kalo pake axios namanya interceptors, jadi setiap request dicek kalo udah expired bakalan hit endpoint buat dapetin access token baru), apakah itu normal? soalnya saya pikir kayak bakal terlalu banyak komunikasi ke server kalo kayak gitu.
@@ProgrammerZamanNow kalo disini pake dua duanya sih, jwt untuk integrasi antar server, kalo client pake session redis, tapi tetep pake jwt sebagai key , jadi server bisa dua duanya,dan kalo redisnya mati bisa ke mode token jwt. keuntungan pake redis bisa di ubah sesinya, secure untuk single session / save session tanpa expire/ manage sesi account dan bisa nyimpen banyak data kalo jwt ada maximun ngirim ke header nya.nah bingung nya kalo pake jwt ngehapus expire nya sebelum expire gimana ?
Pak semisal user dikemudian hari bermasalah(contoh : user tersebut penipu) tapi posisinya si user bermasalah ini sudah ada JWT yang expirednya 1tahun karna check list stay login, ketika akun disuspend supaya tidak bisa login lagi, akun tersebut akan selalu bisa login dengan JWT terakhir dong pak dengan catatan belum expired? mengingat validasi JWT hanya dari verifikasi signature dan data expired JWT belum melewati tanggalnya, tidak adanya pengecekan session dan/atau status user di databse bisa menyebabkan case seperti itu pak ?
di OAuth ada yang namanya refresh token dan access token, access token biasanya gak lama alur hidup nya, jadi kalaupun kecuri, dia gak kan bisa login terlalu lama
Keren dah, seperti biasa selalu mudah dimengerti. Kalo mau lebih dalam lagi, bisa share juga header standar JWT contohnya untuk token generatenya kapan dan akan expire sampai kapan.
Ide bagus
@@ProgrammerZamanNow tambahin pak kapan waktu yang tepat buat refresh token JWT nya
kesalahan yang sering terjadi, passing informasi sensitif di payload JWT, which is yang awalnya secure jadi tidak secure.
karna itu, jangan pernah store sensitive information di payload JWT
mantep 🤘
mantap pak, lanjutan video sebelumnya nih.
Terima kasih pencerahannya pak, sangat menjawab pertanyaan saya sebelumnya, juga jadi tau kenapa pake JWT, ternyata biar ngak banyak tektokan antara service dengan auth server.
semoga berkah terus ilmunya Pak, daging terus ini yang di share
kalau boleh minta share best practice alur untuk implementasi refresh token dong Pak, yang biasanya ada di JWT, kalo ada course lengkap JWT nya boleh juga 🔥🔥🔥
Setauku Refresh Token tuh scopenya OAuth sih. Kalo saya implementasinya biasanya random string aja and disimpen di db aja, dan dibalikin juga pas proses authentication bareng AccessToken. Kalo ada implementasi pakai JWT untuk refresh token, boleh juga tuh.
ide bagus
Mantap pak eko, mudah sekali dipahami
Semoga bermanfaat
mantap pak alhamdulillah pertanyaan saya terjawab 😁
Semoga membantu ya
Mantap , nungguin video lanjutan ttg oauth
19:11 oleh karena itulah bila ada informasi yang sensitif seperti password atau card_number / cvv / expired date di lanjutkan lah ke materi selanjutnya yaitu JWE om . . boleh lah dibahas om materi JWE/JWK/JWA :D
ini yg ditunggu-tunggu
Kompor gass pak , next bahas jwk dan jwks atau malah passkey auth😁
Lanjut bahas cara invalidate access token JWT yang belum expired, Pak.
Misal, ketika user logout, atau mencegah akses ke resource server ketika access token JWT-nya bocor.
ide bagus
Saya biasanya encrypt lagi jwt nya biar body nya tidak bisa dilihat, tapi masukin body jangan yang sensitif😊
gak di enkrip juga gak masalah kalo gak ada data sensitif
Makasih pak
Semoga bermanfaat
jwt bagusnya dan aman disimpan dimana pak? selama ini yang saya pelajari jwt disimpan di local storage.
Kereeeeennnnn
saya memang ganteng
@@ProgrammerZamanNow kwkwkwkwk bukan kamunya, materi pembahasannya .
maap oot dikit. misal app saya itu dashboard dan itu pakai react.
apakah wajar jika setiap refresh itu hit ke /me agar dapat nama,email.
dan mungkin ada yang lainya lagi yg di hit hanya untuk mendapatkan object nyaris static(jarang berubah) seperti user gitu.
aku kepikiran si pake redis jd pas login simpen data user di redis sekaligus tokenya dan apus datanya jika logout, tp misal kalo yg login bersamaan itu banyak. mahal juga kayanya service redis (belum pernah ampe deploy si)
apa emang di industri untuk case yang kaya gini tuh ya biarin aja emang ngehit terus dia.
edited: udah nemu dari gpt. katanya biarin aja emang hit terus. untuk di fe bisa pake state management aja gpp, kalo refresh ya hit lg tp kalo pindah halaman kan ga refresh jd state masih ada alias hidup.
kalo ada saran lain mohon pencerahanya🙏
Kang eko, tolong buatin tutorial untuk handle race condition yang mana data nya menerapkan soft delete di laravel dong.
mas eko. di menit 6:29 kan itu secret key nya disimpan di resource server dan authorization server. kalau semisal nanti client nya iseng minta token nya langsung dari resource server apakah tidak apa apa mas?
resource server punya data user, email, password dll om?
ko minta token ke resource server.
kalau 1 tempat sih, ga masalah. soalnya auth, rosource nya 1 tempat.
@dedihartono_ oh iya juga ya
Request spring security + JWT pak
Izin pak ini bikin alur flow chart nya pakai aplikasi
apa?
Next video : refresh token?
tunggu besok
Kalau usernya dihapus di auth server, apakah access token yang valid & belum expired masih bisa mengakses resource server?
kalau penggunaan react/vue/svelte nyimpen tokennya dimana pak?
Cookie/Local Storage
bagusnya di cookie http only biar gak bisa diakses javascript
Keren Pak Eko.. kira2 butuh materi apa aja yang harus saya tamatin supaya bisa mengaplikasikan oauth dan jwt ini Pak ?
kereeen Mas Eko,
Kalau semisal ada server untuk menangani transaksi dan perlu relasi dengan data yang di auth server, bagaimana cara mengambil data tersebut dengan relasi nya? atau di transaksi lebih baik disimpan dengan data usernya juga?
di JWT biasanya ada informasi userId nya, biar gak perlu nanya lagi ke auth server
Love u pak❤
Buat course jwt dan oauth kang
mau
@@ProgrammerZamanNow gasken kang.sekalian buat implementasi nya juga kayak access token refresh token dll
Rekomendasi untuk menyimpan secreet key dmn kang?
di vault contohnya
Kang tutor belajar Linux dong 😁
Di channel Indonesia belajar. Disini pak Eko pake Mac kalau ga salah
Indonesia belajar, banyak os disana
Kak anak sy umur 6thn. Tp sy liat dy ada ksempatan buat jd programmer krn iqNa d atas ank² lain sebayaNa. Dsni Gx ush sy jlasin lh klebihan dy. Sy cma mw brtnya Gmna yh kak cara ngasah kedepanNa krn kami slaku org tua buta mslh programmer. Dan tdk ada pndukung lainNa.
anak umur 6 tahun masih bisa berubah2 kesukaannya, biarin aja nanti anaknya pilih sendiri lebih suka kemana
Kalau misalnya saya encrypt jsonnya (ada data exp time) dengan aes256 dengan iv dan keynya static apakah bisa lebih secure dan lebih oke ga ya pak?
karena concernnya jwt dapat di decode dengan mudah
selama isi jwt nya bukan dapat sensitif, ya gak masalah
pak mau tanya
kalo resource server bisa akses secret key, kenapa bukan resource server yg generate access token?
Terus fungsinya apa bro resource server generate access token? kan sudah ada auth server yang generate access token?
@@taufiqnewbie buat efisiensi alur ga perlu ada akses ke auth server
@@hitsu-kun berarti kondisinya auth server dan resource server ada dalam satu server ya?
pak eko, semisal acc tokennya kita terima dari server, terus simpan di client cookie, walaupun jwt aman.
apa perlu kita encrypt waktu simpan di cookie?
gak perlu, kebutuhannya untuk apa di enkripsi?
@@ProgrammerZamanNow kebetulan yang saya simpan di jwt itu “id”, mau itu userId atau yang bertentangan sama user. saya mikirnya apa itu boleh/gaboleh diliat orng. makasih pak responnya 👍👍
akhhh ntaps
Pak mau bertanya seputar JWT, best pracitce nya expired access token dan refresh token itu berapa lama?
saya waktu belajar di internet biasanya access token dikasih expired nya sebentar kayak 15s sampe 1 menit, sedangkan untuk refresh token sekitar 1 jam atau sampe ber hari hari.
Nah pertanyaan nya, kalo misalkan access token nya sebentar gitu kan harus generate ulang terus setiap access token nya expired (biasanya kalo pake axios namanya interceptors, jadi setiap request dicek kalo udah expired bakalan hit endpoint buat dapetin access token baru), apakah itu normal? soalnya saya pikir kayak bakal terlalu banyak komunikasi ke server kalo kayak gitu.
gak ada best practice nya, waktu expire nya ngikutin kebijakan perusahaan masing2
oauth pake jwt, apa di simpen di redis buat invalidate token ketika logout, kalo redisnya mati?
bisa sih bikin shared dependency auth,
redis mati, ke logout semua, percuma pake jwt kalo tetep di simpen informasi datanya di redis
@@ProgrammerZamanNow kalo disini pake dua duanya sih, jwt untuk integrasi antar server, kalo client pake session redis, tapi tetep pake jwt sebagai key , jadi server bisa dua duanya,dan kalo redisnya mati bisa ke mode token jwt. keuntungan pake redis bisa di ubah sesinya, secure untuk single session / save session tanpa expire/ manage sesi account dan bisa nyimpen banyak data kalo jwt ada maximun ngirim ke header nya.nah bingung nya kalo pake jwt ngehapus expire nya sebelum expire gimana ?
Encoded, Decoded tuhh ibarat enskripsi sama deskripsi ngak si bg gambaran nya??
bukan
pakai paseto aja agar tidak bisa di decode
Mangtap
BANG BAHAS JWT VS PASETO 🎉🎉🎉
menarik
trus kenapa ngga makai jwt aja? apakah 0auth lbh aman?
CMIIW mungkin 0auth buat sso nya sedangkan jwt untuk ngurangin tektokan antara auth server dengan si resource server
draw nya pake app ap Kang?
excalidraw
@@ProgrammerZamanNow tq kang
nge gym pak
pengen
Pak semisal user dikemudian hari bermasalah(contoh : user tersebut penipu) tapi posisinya si user bermasalah ini sudah ada JWT yang expirednya 1tahun karna check list stay login, ketika akun disuspend supaya tidak bisa login lagi, akun tersebut akan selalu bisa login dengan JWT terakhir dong pak dengan catatan belum expired? mengingat validasi JWT hanya dari verifikasi signature dan data expired JWT belum melewati tanggalnya, tidak adanya pengecekan session dan/atau status user di databse bisa menyebabkan case seperti itu pak ?
di OAuth ada yang namanya refresh token dan access token, access token biasanya gak lama alur hidup nya, jadi kalaupun kecuri, dia gak kan bisa login terlalu lama
✅ OAuth
✅ SSO
✅ JWT
Selanjutnya bikin tutor kodenya pak, SSO pakai OAuth dan JWT. Misal pake Laravel passport gitu 😂🙏🏻
Only member gapapa wes, otw langganan 😅