Olaylar
Bir membership'in olay kaydı.
ErtisAuth, bir membership'te olan çoğu şey için bir olay kaydeder: girişler, token yenilemeleri, kullanıcı değişiklikleri, rol değişiklikleri, gönderilen webhook'lar ve mail'ler… Olayların üç amacı vardır:
- API üzerinden okuyup sorgulayabileceğiniz bir denetim kaydı,
- webhook'ların tetikleyicisi,
- mail hook'ların tetikleyicisi.
Olay nesnesi#
{
"_id": "66f1c0d2a4b5c6d7e8f90190",
"event_type": "UserUpdated",
"utilizer_id": "66f1c0d2a4b5c6d7e8f90124",
"document": {
"_id": "66f1c0d2a4b5c6d7e8f90127",
"username": "ada",
"lastname": "King",
"…": "…"
},
"prior": {
"_id": "66f1c0d2a4b5c6d7e8f90127",
"username": "ada",
"lastname": "Lovelace",
"…": "…"
},
"event_time": "2026-01-05T09:12:44Z",
"membership_id": "66f1c0d2a4b5c6d7e8f90123"
}| Alan | Açıklama |
|---|---|
event_type | Ne olduğu (aşağıdaki listeye bakın). |
utilizer_id | Olaya yol açan kullanıcının ya da uygulamanın id'si ya da system. |
document | Kaynağın değişiklikten sonraki hali. Silmelerde boştur. |
prior | Kaynağın değişiklikten önceki hali; güncellemeler ve silmeler için. |
event_time | Ne zaman olduğu, UTC olarak. |
Parola hash'leri ve uygulama secret'ları hiçbir zaman olayların parçası değildir.
Olay tipleri#
Token'lar#
| Olay | document |
|---|---|
TokenGenerated | user ve yeni token'ın meta verileriyle token: token_type, expires_in, refresh_token_expires_in, created_at |
TokenRefreshed | user ve yukarıdaki gibi yeni token'ın meta verileriyle token. Yenileme ayrıca bir TokenGenerated olayı da kaydeder. |
TokenVerified | token_type ve Bearer token'lar için is_refresh_token ve expires_at (Basic token'lar için application_id) içeren token |
TokenRevoked | İptal edilen access token'ın token_type ve expire_time alanlarını içeren token. İptal edilen her token çifti için bir olay. |
Token olayları hiçbir zaman token'ların kendisini içermez; bu yüzden olay kaydı ve webhook alıcıları bir kullanıcı adına işlem yapmak için kullanılamaz.
Kullanıcılar ve kullanıcı tipleri#
| Olay | Ne zaman |
|---|---|
UserCreated | Bir kullanıcı oluşturuldu (sağlayıcıyla kayıt dahil) |
UserUpdated | Bir kullanıcı güncellendi, etkinleştirildi ya da donduruldu |
UserDeleted | Bir kullanıcı silindi |
UserPasswordChanged | Bir parola değiştirildi ya da sıfırlama token'ıyla belirlendi |
UserPasswordReset | Bir parola sıfırlama istendi |
UserTypeCreated, UserTypeUpdated, UserTypeDeleted | Bir kullanıcı tipi değişti |
Diğer kaynaklar#
| Olaylar |
|---|
ApplicationCreated, ApplicationUpdated, ApplicationDeleted |
RoleCreated, RoleUpdated, RoleDeleted |
ProviderCreated, ProviderUpdated, ProviderDeleted |
WebhookCreated, WebhookUpdated, WebhookDeleted |
MailhookCreated, MailhookUpdated, MailhookDeleted |
TokenCodePolicyCreated, TokenCodePolicyUpdated, TokenCodePolicyDeleted |
Cihaz kodu akışı#
| Olay | document |
|---|---|
TokenCodeApproved | user (onaylayan) ve user_code, client_info (cihaz) ve created_at içeren code |
TokenCodeDenied | reddedilen bir kod için aynısı |
Cihaz kodu hiçbir zaman bu olayların parçası değildir. Bkz. Cihaz Kodu Akışı.
Hook sonuçları#
| Olay | document |
|---|---|
WebhookRequestSent | Başarılı bir webhook çağrısının sonucu: istek, yanıt durumu ve gövdesi, deneme numarası |
WebhookRequestFailed | Başarısız bir deneme için aynısı, hatayla birlikte |
MailhookMailSent | Alıcılar |
MailhookMailFailed | Alıcılar ve hata |
WebhookRequestSent, WebhookRequestFailed, MailhookMailSent, MailhookMailFailed) üzerine kurmayın: her çağrı bir sonrakini tetikler.Endpoint'ler#
Tüm route'lar /memberships/{membershipId} altındadır.
| Metot | Route | Açıklama | Yetki |
|---|---|---|---|
GET | /events/{id} | Olay getirme | events.read.{id} |
GET | /events | Olayları listeleme | events.read |
POST | /events/_query | Olayları sorgulama | events.read |
Olaylar salt okunurdur.
Örnekler#
Bir kullanıcının son girişleri:
curl -X POST 'https://auth.example.com/memberships/<membership_id>/events/_query?limit=20&sort=event_time%20desc' \
-H 'Authorization: Bearer <access_token>' \
-H 'Content-Type: application/json' \
-d '{
"where": {
"event_type": "TokenGenerated",
"utilizer_id": "66f1c0d2a4b5c6d7e8f90127"
}
}'Bu ay rolleri kimin değiştirdiği:
{
"where": {
"event_type": { "$in": [ "RoleCreated", "RoleUpdated", "RoleDeleted" ] },
"event_time": { "$gte": "2026-01-01T00:00:00Z" }
},
"select": { "event_type": 1, "utilizer_id": 1, "event_time": 1, "document.slug": 1 }
}Başarısız webhook çağrıları:
{ "where": { "event_type": "WebhookRequestFailed" } }events.read yetkisini yalnızca denetim kaydına ihtiyacı olanlara verin ve events koleksiyonu için bir saklama politikası planlayın.Dokümantasyonda bir hata mı buldunuz? Issue açın