Toplu parola sıfırlama işi oluşturun

POST /v1/jobs/password-resets · izin user-credentials:write

Tek bir eşzamansız işle birçok kullanıcının yeni bir parola seçmesini zorunlu kılar; örneğin olası bir sızıntıdan sonra veya kullanıcıları zayıf içe aktarılmış karma biçimlerinden uzaklaştırmak için. Yanıt işi hemen döndürür; kullanıcılar arka planda işaretlenir. İşi Toplu parola sıfırlama işini alın ile takip edin. Tek bir kullanıcı için Parola sıfırlamaya zorlayın bölümünü kullanın.

Kullanıcıları iki yoldan biriyle seçin (ikisi birden değil):

connection_id filtresi henüz kullanılamıyor; bunu gönderen istek 422 validation_failed (/connection_id konumunda not_supported) ile reddedilir.

mode değerini seçin:

Idempotency-Key zorunludur. Aynı kimlik bilgisi, anahtar ve istek aynı işi döndürür (Idempotent-Replayed: true ile); aynı anahtarın farklı bir isteğle kullanılması 422 idempotency_key_reuse ile reddedilir. Bir ortamda tamamlanmamış en fazla 20 iş bulunabilir; tembel bir iş son tarihine kadar açık kalır. İş oluşturma, yönetim denetim günlüğüne (password_reset_job.created) yazılır ve password_reset.scheduled olayını yayınlar.

İstek

Alan Tür Zorunlu Açıklama
mode dize evet on_login veya lazy_then_bulk_reset.
user_ids dize[] birinden 1–100.000 kullanıcı kimliği (usr_…).
hash_algos dize[] birinden Saklanan karma algoritmaları: argon2id, argon2i, bcrypt, scrypt, firebase_scrypt, pbkdf2_sha1, pbkdf2_sha256, pbkdf2_sha512, django_pbkdf2_sha256, django_bcrypt_sha256, phpass, ldap_ssha, ldap_ssha256, sha512_crypt, hmac_sha256, salted_sha256, salted_sha512, md5.
deadline_days tam sayı hayır Yalnızca lazy_then_bulk_reset: 1–365, varsayılan 30.

Yanıt

İşle birlikte 202 Accepted.

{
  "id": "job_01h455vb4pex5vsknk084sn02q",
  "mode": "lazy_then_bulk_reset",
  "filter": "hash_algo",
  "hash_algos": ["md5", "phpass"],
  "status": "marking",
  "deadline_at": "2026-02-14T09:30:00Z",
  "total": 0,
  "marked": 0,
  "not_found": 0,
  "passwords_deleted": 0,
  "emailed": 0,
  "created_at": "2026-01-15T09:30:00Z"
}

Hatalar

Her hata, kararlı bir code içeren bir application/problem+json gövdesidir.

HTTP code Ne zaman
400 malformed_request, unknown_field Idempotency-Key başlığı eksik veya hatalıysa, gövde geçerli JSON değilse ya da bilinmeyen bir alan içeriyorsa.
401 unauthenticated API anahtarı eksik, geçersiz veya iptal edilmiş.
403 insufficient_permissions Anahtarın user-credentials:write izni yok.
409 conflict Ortamda zaten tamamlanmamış 20 iş var.
413 payload_too_large Gövde 4 MiB'tan büyük.
422 validation_failed Bir alan eksik veya geçersiz; errors[].pointer bunu belirtir.
422 idempotency_key_reuse Idempotency-Key farklı bir istekle kullanılmış.
429 rate_limited Hız sınırı aşıldı; Retry-After değerine uyun.
503 service_unavailable Bir bağımlılık geçici olarak kullanılamıyor; daha sonra yeniden deneyin.

Örnek

curl -X POST https://api.eu.keenauth.com/v1/jobs/password-resets \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"mode": "lazy_then_bulk_reset", "hash_algos": ["md5", "phpass"], "deadline_days": 30}'

CLI: keenauth jobs password-resets create --mode lazy_then_bulk_reset --hash-algos md5,phpass --deadline-days 30 --yes