Members and auth
Customer (member), address dan profile mereka, login storefront, dan data reference location. Module users yang memilikinya.
Cara halaman ini diverifikasi
Dibaca pada 2026-09-15 dari backend module users, area storefront /auth dan /user, serta area admin /admin/members.
Modelnya
Tabel: members, member_addresses, member_profile_pictures, plus tabel cart (lihat Cart and checkout) dan stores / store_images / collaboration_stores. Reference location adalah ref_countries, ref_provinces, ref_cities, ref_districts, ref_subdistricts — dipakai oleh address dan store locator.
Member auth (storefront)
Backend resolver storefront-members-auth (front*): loginAsMember, registerAsMember, verifyMember, requestResetMemberPassword, resetMemberPassword, frontMe, frontRefreshToken. Password memakai bcrypt; registrasi butuh verifikasi email. Ini adalah realm JWT member (strategy jwt-member) — terpisah dari admin auth. Lihat API and auth.
Sisi storefront: NextAuth Credentials provider → loginAsMember (src/app/auth.ts); token di session NextAuth, dikirim sebagai Bearer; expiry → frontRefreshToken, gagal → paksa sign-out. UI di src/modules/auth/components/ (form-signin, form-register, form-request-reset-password, form-reset-password). Route /auth/signin, /auth/register, /auth/verify, /auth/reset-password. Hanya Credentials provider — tanpa social login di storefront.
Member account (storefront)
/user/*: profile (/user/profile), address book (/user/address + add/edit), riwayat order (/user/my-order, lihat Orders). Data lewat frontMemberAddress(es) dan query ref-location; update profile lewat REST PUT di front/members.
Alamat dan lokasi
Resolver storefront-members-addresses: address CRUD plus frontCountries / frontProvinces / frontCities / frontDistricts / frontSubdistricts. Tabel location yang sama juga menopang store locator (frontStores, frontCitiesWithActiveStores) dan halaman storefront /store-locator (di balik NEXT_PUBLIC_FEAT_STORE_LOCATOR).
Admin
/admin/members — list, add-member, edit-member, dan [slug] dengan address member (add-address / edit-address). Backend CMS resolver members: members, member, dashboardMember, memberFilterBounds, newMemberId, address CRUD, query ref-location; plus export Excel member dan helper migration/notify. Store dikelola di /admin/stores.
Hal yang perlu diwaspadai
- Dua realm. Token member bukan token admin; guard dan secret-nya beda.
- Reference location dipakai bersama. Address, store locator dan courier rate semuanya bersandar pada tabel
ref_*. member.recalculate_favoritesdan eventorder.completedmemperbarui statistik member setelah sebuah order (users/services/members.service.ts).