Üyeliğin bitiş tarihini ayarlama
PATCH /fapi/v1/organizations/{org_id}/memberships/{membership_id} · ortamın giriş ana makinesinden çağrılır
Kuruluş profil ekranı için üyeliğin sona erdiği tarihi (expires_at) ayarlar veya temizler. Tarih geçtiğinde üyelik kaldırılır ve üyenin bu kuruluş bağlamındaki oturumları ile belirteçleri iptal edilir. Yedi gün önce bir membership_expiry_warned olayı yayımlanır. Roller Bir üyenin rollerini ayarlama üzerinden değiştirilir; bu uç nokta yalnızca bitiş tarihini değiştirir.
Bir __Host-idp_session çerezi ve tam eşleşen bir Origin gerekir ya da birinci taraf bir uygulamanın Front API erişim belirteci (DPoP kanıtıyla birlikte Authorization: DPoP <token>; bkz. Front API erişim belirteci) kullanılmalıdır. Kimlik doğrulaması yapılmış kullanıcının kuruluşun etkin bir üyesi olması ve hem idp_members:update_roles hem de idp_members:remove iznine sahip olması gerekir. Üye olmayan bir kullanıcı 404 not_found yanıtı alır; bu iki izne de sahip olmayan bir üye ise 403 insufficient_permissions yanıtı alır. Kendi üyeliğinizi burada değiştiremezsiniz (403 insufficient_permissions); ayrıcalıklı bir rolü olan bir üyeyi yalnızca yönetici rolüne sahip bir üye değiştirebilir (403 role_not_assignable).
@keenauth/js ile: await keenauth.organizations.setMemberExpiry(orgId, membershipId, "2027-03-31T00:00:00Z", { expectedVersion: 3 }); tarihi temizlemek için null değerini geçirin.
İstek
Başlıklar:
| Başlık | Zorunlu | Açıklama |
|---|---|---|
Idp-Client |
evet | SDK tanımlayıcısı. |
Origin |
evet, çerezle birlikte | https://<giriş ana makinesi>. |
If-Match |
hayır | Üye listesinden alınan tek bir sürüm, "<sürüm>". Eşleşmeyen bir sürüm veya birden fazla sürüm 412 precondition_failed döndürür. |
org_id: kuruluş tanımlayıcısı (org_…). membership_id: üyelik tanımlayıcısı (mem_…).
Gövde: {"expires_at": "<RFC 3339 zamanı>"} veya tarihi temizlemek için {"expires_at": null}. expires_at zorunludur. Zaman gelecekte olmalı ve üyelik oluşturulduktan sonra en fazla 365 gün içinde olmalıdır.
Yanıt
200 OK ile birlikte üyelik ve ETag: "<sürüm>" döner. Üyelik alanları, üye listesindeki bir öğenin alanlarıyla aynıdır.
Hatalar
| Durum | Kod | Ne zaman |
|---|---|---|
| 400 | unknown_field |
Gövdede expires_at dışında bir alan var. |
| 400 | malformed_request |
If-Match hatalı biçimde. |
| 401 | unauthenticated |
Geçerli bir oturum çerezi veya belirteci yok. |
| 403 | insufficient_permissions |
Kullanıcının idp_members:update_roles veya idp_members:remove izni yok ya da üyelik kullanıcının kendi üyeliği. |
| 403 | role_not_assignable |
Üye ayrıcalıklı bir role sahip ve kullanıcının yönetici rolü yok. |
| 403 | origin_not_allowed |
Origin eşleşmiyor. |
| 404 | not_found |
Bu kullanıcı için böyle bir kuruluş veya üyelik yok; bilinmeyen, hatalı biçimli veya başkasına ait bir tanımlayıcı aynı yanıtı verir. |
| 409 | organization_disabled |
Kuruluş devre dışı veya silme beklemede (organization_pending_deletion). |
| 412 | precondition_failed |
If-Match, üyeliğin mevcut sürümünü göstermiyor. |
| 422 | validation_failed |
expires_at eksik, RFC 3339 zamanı değil, geçmişte veya üyelik oluşturulduktan sonra 365 günden fazla. |
| 503 | service_unavailable |
Geçici olarak kullanılamıyor; Retry-After süresinden sonra yeniden deneyin. |
Örnek
curl -X PATCH "https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/memberships/mem_01jbz6x8kq3m2n4p5r6s7t8v9b" \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-H "Origin: https://example.keenauth.app" \
-H 'If-Match: "3"' \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{"expires_at": "2027-03-31T00:00:00Z"}'
{
"id": "mem_01jbz6x8kq3m2n4p5r6s7t8v9b",
"user_id": "usr_01jbz6x8kq3m2n4p5r6s7t8v9c",
"status": "active",
"roles": [{ "role_id": "rol_01jbz6x8kq3m2n4p5r6s7t8v9w", "source": "admin_api" }],
"created_at": "2026-11-03T09:00:00Z",
"activated_at": "2026-11-03T09:00:00Z",
"updated_at": "2026-11-03T11:00:00Z",
"version": 4
}
Kişisel veriler
Bu uç nokta kişisel veri içerir: kuruluş üyelikleri ve davetler. KeenAuth API'lerinde kişisel veriler bölümünde neyin saklandığı, ne kadar süreyle tutulduğu ve nasıl silindiği açıklanmaktadır. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.