Headers & Otorisasi Sesi
Proyek tanpa otentikasi hanya menggunakan createHttpClient, dan hanya menambahkan HeaderStore dan otentikasi sesi jika diperlukan.
Kode commonService.ts di halaman ini adalah bagian dari keseluruhan file.
Kode HeaderStore, headersProvider, sessionAuth di bawah ini tidak merupakan contoh file yang saling independen, tetapi menjelaskan setiap bagian dari adapter HTTP umum proyek (rxjsHttpService.ts/commonService.ts). Jika Anda ingin melihat struktur file lengkap, lihat kode lengkap minimum dan ekstensif dari HTTP Client sebelum membaca halaman ini.
header yang dibagikan di browser
header seperti access token yang diterima setelah login yang harus digunakan oleh beberapa layananHeaderStoredapat disimpan di.
commonService.ts
tsDi Next.js, pisahkan header browser dan server
Komponen Klien membaca HeaderStore, dan Komponen Server membaca cookie. headersProviderdapat dibuat. Fungsi ini dapat memisahkan cara pengambilan header CSR dan SSR di satu tempat.
commonService.ts
tsJika refresh 401 diperlukan, bungkus sekali di callApi
Jangan modifikasi layanan yang dihasilkan secara otomatis satu per satu, tambahkan operator sesi dicallApisehingga semua layanan yang dihasilkan menggunakan aturan pencarian dan refresh token yang sama.
commonService.ts
tsJika tidak ada Authorization, periksa endpoint token terlebih dahulu, dan jika permintaan asli adalah 401, lakukan permintaan ulang setelah refresh. Jika refresh juga gagal, panggil endpoint logout dan sampaikan kesalahan asli.
Jika hanya perlu sinkronisasi token tanpa refresh/retry.
Untuk menyinkronkan token sebelum permintaan tanpa menggunakan 401 refresh/retry, gunakan withEnsureToken().
Jika tidak memerlukan otentikasi
Untuk API publik atau proyek sederhana, ini sudah cukup. HeaderStore dan otentikasi sesi bukanlah struktur yang wajib.