Pengantar JWT: JSON Web Token (JWT) adalah standar terbuka (RFC 7519) yang mendefinisikan cara yang ringkas dan mandiri untuk mentransfer informasi dengan aman antar pihak dalam objek JSON. Informasi ini dapat diverifikasi dan dipercaya melalui tanda tangan digital. JWT dapat ditandatangani menggunakan rahasia (menggunakan algoritma HMAC) atau menggunakan pasangan kunci publik/pribadi RSA.
Beberapa skenario di mana Token Web JSON berguna:
Verifikasi Identitas:Ini adalah kasus paling umum menggunakan JWT. Setelah pengguna masuk, setiap permintaan berikutnya akan berisi JWT yang memungkinkan pengguna mengakses rute, layanan, dan sumber daya yang diizinkan oleh token tersebut. Single sign-on adalah fitur yang banyak digunakan saat ini karena overheadnya yang rendah dan kemampuannya untuk mudah digunakan di berbagai domain.
Pertukaran informasi:Token Web JSON adalah cara yang bagus untuk mentransfer informasi dengan aman antar pihak. Karena JWT dapat ditandatangani - misalnya menggunakan pasangan kunci publik/pribadi, dimungkinkan untuk memastikan bahwa pengirim adalah siapa yang mereka klaim. Selain itu, karena tanda tangan dihitung menggunakan header dan payload, Anda juga dapat memverifikasi bahwa konten belum dirusak.
Situs resmi:Login hyperlink terlihat.
Mengurai informasi JWT secara online:Login hyperlink terlihat.
Menganalisis parameter JWT secara online Login hyperlink terlihat.
Pemahaman saya tentang JWT di bawah ini salah, tolong beri saya beberapa saran
Pertama-tama, hal ini, tidak disarankan bagi Anda untuk menggunakannya di situs web MVC, Anda dapat menggunakannya di webapi, posisi benda ini adalah API, bukan sesi situs web pengganti!
asp.net tutorial penggunaan webapi:Login hyperlink terlihat.Saya tidak akan membuat ulang roda, melihat apa yang ditulis artikel ini tidak apa-apa.
Komposisi JWT
JWT terdiri dari tiga bagian: Header, Payload, dan Signature, dengan simbol titik di antaranya untuk membentuk bentuk xx.yy.zz.
Perhatikan bahwa untuk token yang ditandatangani, informasi ini dapat dibaca oleh siapa saja, meskipun ada perlindungan gangguan. Jangan tempatkan informasi sensitif dalam konten yang valid atau elemen header JWT kecuali dienkripsi.
Misalnya:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [tanda tangan] Dalam istilah awam, siapa pun dapat mendekripsi token ini, tetapi keaslian informasi ini tidak dapat diverifikasi, hanya server yang menghasilkan token ini yang dapat memverifikasi keasliannya, jadi jangan menyimpan informasi sensitif di dalamnya.
Ada masalah di sini, yaitu jika pengguna mengubah kata sandi atau pengguna dilarang masuk, bagaimana JWT dapat menyelesaikan validitas token?
Ide saya sendiri adalah menambahkan string seperti guid di bagian Payload, dan kemudian ada di cache, saat memverifikasi identitas pengguna, tidak hanya memverifikasi jwt, tetapi juga memverifikasi informasi Payload di jwt, kita dapat mengontrol validitas dengan mengontrol cache.
|