Pengenalan
Autentikasi dan pendaftaran pengguna dibuat mudah.
Informasi lebih lanjut tentang antarmuka pengguna modul ini https://doc.oneentry.cloud/docs/users/auth_provider
🎯 Apa yang dilakukan modul ini?
Modul AuthProvider menangani segala sesuatu yang terkait dengan autentikasi pengguna — mendaftar, masuk, perubahan kata sandi, kode aktivasi email/SMS, OAuth, dan menjaga sesi tetap aktif dengan token akses dan refresh. SDK mendukung beberapa penyedia autentikasi (login + kata sandi dan OAuth).
🚀 Memulai dengan Cepat
Inisialisasi modul dari defineOneEntry:
const { AuthProvider } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
Autentikasi pengguna terhadap penyedia email dan baca token yang dikembalikan:
// Authenticate against the "email" auth provider.
const result = await AuthProvider.auth("email", {
authData: [
{ marker: "login", value: "example@oneentry.cloud" },
{ marker: "password", value: "12345" },
],
});
// On success the SDK stores the tokens automatically.
console.log(result.accessToken, result.refreshToken);
Argumen pertama selalu merupakan penanda penyedia (misalnya, "email"). Setelah auth() berhasil, SDK menyimpan token dan menyegarkannya untuk Anda.
✨ Konsep Kunci
| Fitur | Apa yang Dilakukannya | Contoh Penggunaan |
|---|---|---|
| Pendaftaran Pengguna | Membuat akun pengguna baru | Formulir pendaftaran |
| Masuk / Keluar | Mengautentikasi pengguna | Halaman masuk |
| Manajemen Kata Sandi | Mengubah & memulihkan kata sandi | Alur lupa kata sandi |
| Manajemen Token | Menjaga pengguna tetap masuk dengan aman | Sesi auto-refresh |
| Verifikasi Email / SMS / Push | Mengirim kode aktivasi | Verifikasi akun setelah pendaftaran |
| OAuth | Masuk sosial (Google, dll.) | "Masuk dengan Google" |
Alur Autentikasi
1. User enters email + password
↓
2. auth() is called with the provider marker
↓
3. OneEntry verifies credentials and returns access + refresh tokens
↓
4. The SDK stores the tokens and sends the access token with requests
↓
5. When the access token expires, the SDK uses the refresh token automatically
📋 Apa yang Perlu Anda Ketahui
Penyedia Autentikasi
OneEntry mendukung berbagai cara untuk mengautentikasi, masing-masing diidentifikasi dengan penanda:
- Email (
email) - login tradisional + kata sandi - OAuth - Google, Facebook, dll.
Kode aktivasi dapat dikirim melalui berbagai saluran (email, SMS, atau push) melalui objek notificationData yang Anda kirim ke signUp() — phoneSMS dan phonePush adalah saluran pengiriman untuk kode tersebut, bukan penyedia login mandiri.
Token
Sukses auth() mengembalikan dua token:
- Token Akses - berumur pendek, dikirim dengan permintaan API. Umurnya dikonfigurasi di panel admin.
- Token Refresh - berumur panjang, digunakan untuk mendapatkan token akses baru.
SDK menyimpan dan menyegarkan token untuk Anda. Untuk mempertahankan sesi di antara pemuatan ulang, konfigurasikan saveFunction (lihat FAQ di bawah).
Bidang Formulir
Saat mendaftarkan pengguna, Anda mengirim entri data formulir dengan:
marker- nama bidang (misalnya,email_reg,password_reg,last_name)type- tipe data (misalnya,string,image)value- nilai aktual
📊 Tabel Referensi Cepat - Metode Umum
| Metode | Apa yang Dilakukannya |
|---|---|
| activateUser() | Aktivasi pengguna dengan kode layanan. |
| auth() | Mengautentikasi pengguna. |
| changePassword() | Perubahan kata sandi pengguna. |
| checkCode() | Memeriksa kode aktivasi pengguna. |
| generateCode() | Mendapatkan kode untuk mengaktifkan pengguna. |
| getActiveSessionsByMarker() | Mendapatkan sesi pengguna yang aktif. |
| getAuthProviderByMarker() | Mendapatkan satu objek penyedia autentikasi berdasarkan penanda. |
| getAuthProviders() | Mendapatkan semua objek penyedia autentikasi. |
| logout() 🔐 | Keluar dari akun saat ini. |
| logoutAll() 🔐 | Keluar dari semua perangkat. |
| oauth() | Mendaftar / mengautentikasi melalui OAuth. |
| refresh() | Menyegarkan token pengguna. |
| signUp() | Pendaftaran pengguna. |
🔐 menandakan metode yang memerlukan sesi pengguna yang terautentikasi.
❓ Pertanyaan Umum (FAQ)
Apakah saya perlu mengelola token secara manual?
Tidak. SDK menyimpan token, menyegarkan yang kedaluwarsa, dan mengirim token akses dengan setiap permintaan secara otomatis.
Bagaimana cara menjaga pengguna tetap masuk setelah penyegaran halaman?
Konfigurasikan SDK dengan saveFunction:
const { AuthProvider } = defineOneEntry("your-url", {
token: "your-token",
auth: {
refreshToken: localStorage.getItem('refreshToken'),
saveFunction: (token) => localStorage.setItem('refreshToken', token)
}
});
Apa perbedaan antara login dan email?
login- bisa berupa email ATAU nama pengguna (apa pun yang diterima penyedia autentikasi Anda)email- selalu alamat email
Bisakah saya menggunakan login sosial (Google, Facebook)?
Ya. Siapkan penyedia OAuth di admin OneEntry, lalu gunakan metode oauth().
Apa yang terjadi ketika token akses kedaluwarsa?
SDK secara otomatis menggunakan token refresh untuk mendapatkan token akses baru, sehingga pengguna tetap masuk.
🎓 Praktik Terbaik
- Selalu kirim penanda penyedia sebagai argumen pertama (misalnya,
"email"). - Pertahankan token refresh dengan
saveFunctionsehingga sesi bertahan setelah pemuatan ulang. - Bungkus panggilan autentikasi dalam try/catch dan periksa objek kesalahan yang dikembalikan.
- Gunakan
logout()/logoutAll()untuk membatalkan sesi di server, bukan hanya di sisi klien.
🔗 Dokumentasi Terkait
- Modul Pengguna - Kelola profil dan data pengguna
- Modul Formulir - Buat formulir pendaftaran/masuk
- Modul FormData - Tangani pengiriman formulir