Session API

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

http
POST /sessions

URL lengkap:

http
POST /wp-json/sejoli/v1/sessions

Scope

OperasiScope
Menerbitkan user-session tokensessions:write

Request

Header:

http
Authorization: Bearer sejoliapi_<prefix>_<secret>
Content-Type: application/json
Accept: application/json

Body:

FieldTipeWajibKeterangan
user_idintegerYaID user WordPress/Sejoli yang akan dibuatkan user-session token.
providerstringTidakNama sumber koneksi, default wordpress. Contoh: mobile_app, member_area, external_app.
provider_user_idstringTidakID user di sistem provider. Jika kosong memakai user_id.

Contoh:

bash
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

json
{
  "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:

http
Authorization: Bearer <user_session_token>

Error Umum

StatusCodeKeterangan
400rest_invalid_paramuser_id kosong atau tidak valid.
401rest_forbiddenAPI key tidak dikirim atau tidak valid.
403rest_forbiddenAPI key tidak memiliki scope sessions:write.
404rest_user_not_foundUser tidak ditemukan.
500sejoli_session_issue_failedToken tidak berhasil diterbitkan.

Perbedaan Dengan API Key

API KeyUser-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/*.

Last updated Jul 7, 2026