ServiceLogin

Terakhir diperbarui: 3 Juli 2026

ServiceLogin adalah konfigurasi yang memungkinkan Space mendaftarkan dan memasukkan end-user (ServiceUser) produknya sendiri melalui OAuth. Ini adalah pintu masuk untuk menyematkan sistem identitas terpisah dari akun platform Weegloo (Weegloo User yang login ke studio konten) ke dalam produk. Anggota yang mendaftar melalui konfigurasi ini menerima peran bawaan ServiceLogin (defaultRole), dan token anggota tersebut diautentikasi terhadap ACMA/ACDA.

Sebuah Space hanya memiliki paling banyak satu ServiceLogin. Jika Anda memanggil pembuatan (POST) lagi ketika sudah ada, akan dikembalikan WGL409003 (409 Conflict). Karena itu pengambilannya pun dilakukan dengan GET .../service-login tanpa loginId untuk mengambil satu-satunya itu sebagai satu item (tidak ada endpoint daftar).

Struktur resource

Berikut adalah respons untuk satu ServiceLogin. Bersama sys (properti sistem), resource ini memiliki properti body yang menyimpan informasi tampilan layanan dan perilaku pendaftaran: name, callbackUrl, contactEmail, dan approvalRequired.

{
  "sys": {
    "id": "3trmXRM3RqbgSnifyg7PSlgn01Ex",
    "type": "ServiceLogin",
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
    "defaultRole": { "sys": { "id": "3trmXRLXeZN2RTHvVj3hFDN5546vbp", "type": "Refer", "targetType": "ServiceUserRole" } },
    "providers": [
      { "registrationId": "google", "clientId": "821047-dailywear.apps.googleusercontent.com" }
    ],
    "createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-06-18T12:55:00.000Z",
    "updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "updatedAt": "2026-06-18T12:55:00.000Z",
    "version": 1
  },
  "name": "Keanggotaan DailyWear",
  "callbackUrl": "https://dailywear.example/auth/callback",
  "contactEmail": "members@dailywear.example",
  "approvalRequired": false
}

Kunci utama:

  • defaultRole: Refer ke ServiceUserRole yang diterima secara bawaan oleh anggota yang baru mendaftar. Jika diperlukan peran berbeda per anggota, gantikan dengan roleOverride pada ServiceUser.
  • providers: daftar penyedia OAuth yang didukung layanan ini. Setiap item terdiri dari registrationId, clientId, dan clientSecret. clientSecret tidak muncul dalam respons.
  • callbackUrl: URL tujuan setelah anggota menyelesaikan login OAuth. Token penukaran (exchangeToken) dikembalikan ke URL ini sebagai query string.
  • approvalRequired: jika diaktifkan, anggota baru mendaftar dalam keadaan login dinonaktifkan (enableLogin=false) sehingga memerlukan persetujuan administrator.

Properti sistem (sys)

Setiap ServiceLogin menyimpan properti sistem umum dalam objek sys. space, defaultRole, createdBy, dan updatedBy masuk dalam bentuk Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).

PropertiTipeDeskripsi
idstringIdentifier unik resource.
typestringJenis resource. Untuk ServiceLogin selalu "ServiceLogin".
spaceRefer<Space>Space tempat konfigurasi ini berada.
defaultRoleRefer<ServiceUserRole>ServiceUserRole yang diterima secara bawaan oleh anggota yang baru mendaftar.
providersArray ProviderDaftar penyedia OAuth yang didukung. Item respons tidak memuat clientSecret.
createdByRefer<User>Weegloo User yang membuat konfigurasi ini.
createdAtstring (date-time)Waktu pembuatan.
updatedByRefer<User>Weegloo User yang terakhir mengubahnya.
updatedAtstring (date-time)Waktu perubahan terakhir.
versionintegerVersi resource. Disertakan dalam header X-Weegloo-Version saat melakukan perubahan.

ServiceLogin adalah resource konfigurasi sehingga tidak memiliki konsep publikasi. Tidak ada publish, archive, atau status; hanya ada version untuk mencegah konflik perubahan bersamaan.

Properti body dan provider

PropertiTipeDeskripsi
namestringNama tampilan layanan.
callbackUrlstringURL tujuan setelah login OAuth selesai. exchangeToken dikembalikan ke URL ini sebagai query.
contactEmailstringEmail kontak administrator layanan.
approvalRequiredbooleanJika true, anggota baru dimulai dengan enableLogin=false sehingga memerlukan persetujuan administrator. Nilai bawaannya false.

providers

providers adalah daftar penyedia OAuth yang didukung layanan ini. Setiap provider terdiri dari tiga nilai berikut.

PropertiTipeDeskripsi
registrationIdstringIdentifier penyedia OAuth. Saat ini mendukung google, github, facebook, gitlab, kakao, naver, dan line.
clientIdstringClient ID yang diterbitkan oleh penyedia tersebut.
clientSecretstringClient secret yang diterbitkan oleh penyedia tersebut. Bersifat write-only sehingga tidak muncul dalam respons.

Saat ini registrationId yang sudah dihubungkan WEEGLOO ke endpoint OAuth ada tujuh: google, github, facebook, gitlab, kakao, naver, dan line. Login tidak berfungsi dengan nilai lain selain itu.

Provider dapat disertakan bersama body pembuatan ServiceLogin, atau dikelola secara terpisah melalui endpoint penambahan, perubahan, dan penghapusan provider di bawah. Karena body perubahan (PUT) ServiceLogin tidak memuat providers, provider dari konfigurasi yang sudah dibuat ditangani melalui endpoint khusus.

ServiceLogin harus selalu memiliki minimal 1 provider, dan paling banyak 10 provider. Saat pembuatan, Anda harus menyertakan minimal satu provider pada providers. Satu-satunya provider yang tersisa tidak dapat dihapus, dan mencoba menghapusnya akan mengembalikan WGL422055 (422). Untuk menghilangkan semua provider, hapus ServiceLogin itu sendiri.

Mendaftarkan redirect URI

Saat membuat aplikasi OAuth di konsol setiap provider (Google, GitHub, Facebook, GitLab, Kakao, Naver, LINE), Anda harus mendaftarkan redirect URI resmi (redirect URI) sama persis dengan nilai yang dipakai WEEGLOO. Jika nilainya berbeda, login akan gagal dengan redirect_uri mismatch.

URI yang didaftarkan mengikuti format berikut.

https://auth.weegloo.com/v1/spaces/{spaceId}/login/oauth2/code/{registrationId}

  • {spaceId}: sys.id dari Space tempat ServiceLogin ini berada.
  • {registrationId}: identifier provider (google, github, facebook, gitlab, kakao, naver, line).

Misalnya, jika Anda menghubungkan Google ke Space HnQ32YiH, daftarkan https://auth.weegloo.com/v1/spaces/HnQ32YiH/login/oauth2/code/google.

API

Base URL untuk semua endpoint di bawah adalah https://cma.weegloo.com/v1, dan diperlukan token Bearer yang mengautentikasi CMA pada header Authorization. Endpoint perubahan (PUT, PATCH) dan pengelolaan provider harus menyertakan sys.version saat ini pada header X-Weegloo-Version untuk mencegah konflik perubahan bersamaan. Pembuatan dan penghapusan ServiceLogin tidak memerlukan header ini. Pengambilan mengambil satu ServiceLogin dari Space tersebut tanpa loginId.

  • ServiceUserRole: kumpulan izin yang diberikan melalui defaultRole.
  • ServiceUser: anggota yang mendaftar melalui konfigurasi ini.
  • Auth API: alur login OAuth anggota dan penukaran token.