SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan · Pelajaran

Log Masuk & Penjanaan JWT

Bina sistem log masuk pengguna yang mengeluarkan dan mengurus Token Web JSON (JWT) untuk pengurusan sesi.

Pelajaran 2 daripada 412 langkah

Log Masuk & Penjanaan JWT ialah pelajaran SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan merangkumi sejumlah 4 pelajaran.

Selamat Datang ke Sistem Log Masuk

Dalam pelajaran sebelumnya, kita mempelajari tentang pendaftaran pengguna dan pencincangan kata laluan yang selamat. Kini tiba masanya untuk membina sistem log masuk!

Sistem log masuk membolehkan pengguna yang telah disahkan mengakses sumber yang dilindungi dan menyesuaikan pengalaman mereka dalam aplikasi SaaS anda.

Cara Log Masuk Berfungsi (Gambaran Keseluruhan)

Apabila pengguna cuba log masuk, mereka biasanya memberikan nama pengguna (atau e-mel) dan kata laluan. Berikut ialah aliran asasnya:

  • Klien (contohnya, aplikasi mudah alih anda) menghantar kelayakan kepada pelayan.
  • Pelayan mengesahkan kelayakan ini berdasarkan data pengguna yang disimpannya.
  • Jika sah, pelayan memberikan akses.

Mengesahkan Kelayakan Pengguna

Selepas menerima kelayakan log masuk, pelayan anda perlu melakukan semakan penting:

  1. Cari pengguna berdasarkan pengecam unik mereka (contohnya, e-mel atau nama pengguna).
  2. Dapatkan kata laluan tercincang yang disimpan untuk pengguna tersebut.
  3. Bandingkan kata laluan yang diberikan (selepas mencincangnya menggunakan kaedah yang sama) dengan kata laluan tercincang yang disimpan.

Jangan sesekali menyimpan kata laluan dalam teks biasa! Sentiasa cincang dan tambahkan salt padanya, seperti yang dibincangkan dalam pelajaran pendaftaran.

Cabaran: API Tanpa Keadaan

API moden selalunya tanpa keadaan, bermaksud pelayan tidak mengingati permintaan terdahulu daripada klien yang sama. Hal ini menjadikan API mudah diskalakan, tetapi menimbulkan cabaran untuk pengesahan pengguna.

Bagaimanakah kita mengetahui bahawa pengguna yang baru sahaja log masuk masih disahkan pada permintaan seterusnya tanpa menghantar kelayakan setiap kali?

Memperkenalkan JSON Web Token (JWT)

JSON Web Token (JWT) ialah cara yang padat dan selamat untuk URL bagi mewakili tuntutan yang akan dipindahkan antara dua pihak. JWT amat sesuai untuk pengesahan tanpa keadaan.

Daripada menggunakan sesi pada bahagian pelayan, pelayan mengeluarkan JWT selepas log masuk berjaya. Klien kemudiannya menyimpan token ini dan menghantarnya bersama setiap permintaan berikutnya.

Struktur JWT: Pengepala

JWT terdiri daripada tiga bahagian yang dipisahkan oleh noktah: Pengepala, Muatan dan Tandatangan.

Pengepala biasanya mengandungi dua bahagian:

  • typ (jenis token, biasanya 'JWT')
  • alg (algoritma tandatangan, contohnya, 'HS256' untuk HMAC SHA256)

Ia ialah objek JSON yang dikodkan dalam Base64Url.

{"alg":"HS256","typ":"JWT"}

Struktur JWT: Muatan (Tuntutan)

Muatan mengandungi 'tuntutan' – pernyataan tentang entiti (biasanya pengguna) serta data tambahan.

Tuntutan boleh berupa:

  • Berdaftar: Medan standard seperti sub (subjek), exp (masa tamat tempoh) dan iat (masa dikeluarkan).
  • Awam: Tuntutan tersuai yang ditakrifkan oleh anda, tetapi didaftarkan dalam Daftar JSON Web Token IANA.
  • Persendirian: Tuntutan tersuai yang dipersetujui oleh pihak yang menggunakannya, seperti userId atau role.

Contoh Muatan:

{"sub":"12345","name":"Coddy User","exp":1700000000}

Struktur JWT: Tandatangan

Tandatangan penting untuk mengesahkan integriti token. Tandatangan dicipta dengan mengambil pengepala yang dikodkan, muatan yang dikodkan dan kunci rahsia, kemudian menggunakan algoritma yang dinyatakan dalam pengepala.

Jika sesiapa cuba mengubah pengepala atau muatan, pengesahan tandatangan akan gagal dan token menjadi tidak sah. Kunci rahsia hanya diketahui oleh pelayan.

Menjana JWT (Konseptual)

Selepas berjaya mengesahkan kelayakan pengguna, pelayan anda menjana JWT. Proses ini melibatkan:

  1. Mencipta objek JSON Pengepala dan Muatan.
  2. Mengekodkan kedua-duanya dalam Base64Url.
  3. Menggabungkannya dengan noktah.
  4. Menandatangani rentetan gabungan menggunakan kunci rahsia dan algoritma yang dipilih untuk menghasilkan Tandatangan.

JWT akhir ialah EncodedHeader.EncodedPayload.Signature.

Contoh Penjanaan JWT

Walaupun penandatanganan JWT sepenuhnya memerlukan pustaka, kita boleh menunjukkan bahagian pengekodan Base64 dalam pembinaan rentetan JWT. Ini memastikan token selamat digunakan dalam URL.

import java.util.Base64;
import java.nio.charset.StandardCharsets;

public class Main {
  public static void main(String[] args) {
    String headerJson = "{\"alg\":\"HS256\",\"typ\":\"JWT\"}";
    String payloadJson = "{\"sub\":\"user123\",\"name\":\"Coddy User\"}";

    String encodedHeader = Base64.getUrlEncoder().withoutPadding().encodeToString(headerJson.getBytes(StandardCharsets.UTF_8));
    String encodedPayload = Base64.getUrlEncoder().withoutPadding().encodeToString(payloadJson.getBytes(StandardCharsets.UTF_8));

    System.out.println("Header (Base64Url-encoded):\n" + encodedHeader);
    System.out.println("\nPayload (Base64Url-encoded):\n" + encodedPayload);
    System.out.println("\nConceptual JWT structure: " + encodedHeader + "." + encodedPayload + ".[Signature]");
  }
}

Semakan Ringkas: Bahagian JWT

Anda baru sahaja mempelajari tiga bahagian utama JSON Web Token (JWT).

Imbas Kembali: Log Masuk dan JWT

Syabas! Anda telah mempelajari cara sistem log masuk pengguna berfungsi dan peranan JSON Web Token (JWT) dalam pengesahan moden tanpa keadaan.

  • Log masuk melibatkan pengesahan kelayakan terhadap kata laluan yang telah dicincang.
  • JWT menyediakan cara tanpa keadaan untuk mengurus sesi pengguna.
  • JWT mempunyai tiga bahagian: Pengepala, Muatan dan Tandatangan.
  • Tandatangan memastikan integriti token.

Seterusnya, kita akan meneroka cara menggunakan JWT ini untuk melindungi laluan API anda!

Percuma untuk bermula

Pelajari SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Log Masuk & Penjanaan JWT” percuma?

Ya — teks penuh “Log Masuk & Penjanaan JWT” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan, tingkat taraf kepada CoddyKit PRO. Kursus SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Log Masuk & Penjanaan JWT”?

Bina sistem log masuk pengguna yang mengeluarkan dan mengurus Token Web JSON (JWT) untuk pengurusan sesi. Anda berlatih SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan?

Tiada pengalaman terdahulu diperlukan. Pembelajaran SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Log Masuk & Penjanaan JWT” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan ini?

Ya. Setiap pelajaran SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pendaftaran Pengguna & Pencincangan
  2. Log Masuk & Penjanaan JWT
  3. Laluan Dilindungi & Middleware
  4. Tetapan Semula Kata Laluan dan Pengesahan E-mel
← Kembali ke SaaS Berkuasa AI: Stripe + Pengesahan + Pengebilan + Penggunaan