Lewati ke konten utama

API Pengguna Saat Ini

GET /api/external/me mengembalikan profile third-party user yang sudah authenticated dalam stable external API shape. Response difilter berdasarkan scopes yang diberikan ke OIDC access token.

URL endpoint produksi: https://api.muhajirstudio.com/api/external/me.

Endpoint

GET /api/external/me
Authorization: Bearer ACCESS_TOKEN

Authentication wajib. Cookie-only sessions ditolak; endpoint ini hanya menerima OIDC bearer access tokens.

Required Scope

Endpoint ini membutuhkan openid.

Jika access token valid tetapi tidak menyertakan openid, response adalah:

HTTP/1.1 403 Forbidden
Content-Type: application/json

{
"error": "FORBIDDEN",
"missingScopes": ["openid"]
}

Response Fields

Response selalu menyertakan sub saat openid diberikan. Field lain hanya disertakan ketika token memiliki scope yang sesuai.

FieldTypeScopeCatatan
substringopenidStable user identifier.
namestringprofileUser display name.
picturestring | nullprofileUser profile image URL jika tersedia, jika tidak null.
emailstringemailUser email address.
emailVerifiedbooleanemailEmail verification status.
permissionsstring[]permissionsEffective permission keys yang difilter ke known permissions.

Response schema:

{
"sub": "user-id",
"name": "Jane Doe",
"picture": null,
"email": "jane@example.com",
"emailVerified": true,
"permissions": ["manage-applications", "login-web-admin"]
}

Field untuk scopes yang tidak diberikan dihilangkan, bukan dikembalikan sebagai null, kecuali picture, yang dapat bernilai null saat profile diberikan tetapi image tidak tersedia.

Scope Examples

openid

{
"sub": "user-id"
}

openid profile

{
"sub": "user-id",
"name": "Jane Doe",
"picture": null
}

openid email

{
"sub": "user-id",
"email": "jane@example.com",
"emailVerified": true
}

openid permissions

{
"sub": "user-id",
"permissions": ["manage-applications", "login-web-admin"]
}

Errors

StatusErrorArti
401UNAUTHORIZEDBearer token tidak ada, malformed, expired, tidak dikenal, atau tanpa user.
403FORBIDDENBearer token valid tetapi tidak memiliki openid.
404USER_NOT_FOUNDToken subject tidak terhubung ke user yang ada.
500INTERNAL_ERRORUnexpected lookup atau response validation failure.

CORS

GET /api/external/me dicakup oleh dynamic third-party CORS karena berada di bawah /api/external/*.

Untuk browser clients:

  • Browser origin harus terdaftar di allowedWebOrigins milik aplikasi.
  • Kirim access token di Authorization: Bearer ACCESS_TOKEN.
  • Jangan bergantung pada cookies; third-party CORS bersifat non-credentialed.

Kapan Menggunakan Endpoint Ini

Gunakan /api/external/me ketika aplikasi pihak ketiga membutuhkan identity atau profile pengguna Muhajir Studio saat ini setelah OIDC login.

Jangan gunakan /api/me/permissions atau /api/me/access untuk third-party integrations. Endpoint tersebut adalah first-party app/session APIs dan bukan stable external current-user contract.