Endpoint untuk menerbitkan user-session token yang digunakan oleh endpoint /me.
Session API digunakan oleh integrasi internal/site owner untuk menerbitkan token sesi pengguna. Token ini kemudian dipakai oleh frontend/aplikasi user-facing untuk mengakses endpoint /me secara identity-bound.
Endpoint
URL lengkap:
POST /wp-json/sejoli/v1/sessions
Scope
| Operasi | Scope |
|---|
| Menerbitkan user-session token | sessions:write |
Request
Header:
Body:
| Field | Tipe | Wajib | Keterangan |
|---|
user_id | integer | Ya | ID user WordPress/Sejoli yang akan dibuatkan user-session token. |
provider | string | Tidak | Nama sumber koneksi, default wordpress. Contoh: mobile_app, member_area, external_app. |
provider_user_id | string | Tidak | ID user di sistem provider. Jika kosong memakai user_id. |
Contoh:
curl \
-X POST \
-H "Authorization: Bearer sejoliapi_xxxxxxxx_secret" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"user_id":35,"provider":"member_area"}' \
"https://domain-anda.com/wp-json/sejoli/v1/sessions"
Response Berhasil
{
"success": true,
"data": {
"token": "eyJ...",
"token_type": "Bearer",
"expires_in": 604800,
"user": {
"id": 35,
"display_name": "User Name",
"email": "user@example.com"
}
}
}
Gunakan nilai data.token sebagai bearer token untuk endpoint /me:
Error Umum
| Status | Code | Keterangan |
|---|
| 400 | rest_invalid_param | user_id kosong atau tidak valid. |
| 401 | rest_forbidden | API key tidak dikirim atau tidak valid. |
| 403 | rest_forbidden | API key tidak memiliki scope sessions:write. |
| 404 | rest_user_not_found | User tidak ditemukan. |
| 500 | sejoli_session_issue_failed | Token tidak berhasil diterbitkan. |
Perbedaan Dengan API Key
| API Key | User-session token |
|---|
| Dipakai oleh integrasi server/admin. | Dipakai untuk akses data user yang sedang login/terhubung. |
| Scope ditentukan di API key. | Identitas user diambil dari JWT. |
| Bisa mengakses endpoint sesuai scope. | Hanya dipakai untuk endpoint /me/*. |