Oturumlar
Aktif token'lar ve iptal edilmiş token'lar.
ErtisAuth, verdiği her token çiftini takip eder. Kullanıcılara nerelerde oturum açık olduğunu göstermek için bir membership'in aktif token'larını, denetim için de iptal edilmiş token'larını listeleyebilirsiniz.
Aktif token'lar#
Aktif token, süresi dolmamış ve iptal edilmemiş bir token çiftidir.
{
"_id": "66f1c0d2a4b5c6d7e8f901c0",
"access_token": "eyJhbGciOiJIUzI1NiIs…",
"refresh_token": "eyJhbGciOiJIUzI1NiIs…",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token_expires_in": 86400,
"created_at": "2026-01-01T12:00:00Z",
"expire_time": "2026-01-01T13:00:00Z",
"retain_until": "2026-01-02T12:00:00Z",
"user_id": "66f1c0d2a4b5c6d7e8f90127",
"username": "ada",
"email_address": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"client_info": {
"ip_address": "203.0.113.42",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_0) …"
},
"membership_id": "66f1c0d2a4b5c6d7e8f90123"
}| Alan | Açıklama |
|---|---|
expire_time | Access token'ın süresinin dolduğu an |
retain_until | Access ve refresh token bitiş zamanlarından geç olanı. MongoDB kaydı bu zamandan birkaç dakika sonra siler. |
client_info | Girişin IP adresi ve user agent'ı; istekten ya da X-IpAddress ve X-UserAgent header'larından alınır |
tokens.read yetkisini yalnızca güvenilir operatörlere verin ve oturumları bir kullanıcı arayüzünde gösterirken token'ları dışarıda bırakmak için select kullanın.Endpoint'ler#
Tüm route'lar /memberships/{membershipId} altındadır.
| Metot | Route | Açıklama | Yetki |
|---|---|---|---|
GET | /active-tokens/{id} | Aktif token getirme | tokens.read.{id} |
GET | /active-tokens | Aktif token'ları listeleme | tokens.read |
POST | /active-tokens/_query | Aktif token'ları sorgulama | tokens.read |
POST | /active-tokens/_aggregate | Aggregation pipeline çalıştırma | tokens.read |
Örnekler#
Bir kullanıcının oturumları, token değerleri olmadan:
curl -X POST 'https://auth.example.com/memberships/<membership_id>/active-tokens/_query?sort=created_at%20desc' \
-H 'Authorization: Bearer <access_token>' \
-H 'Content-Type: application/json' \
-d '{
"where": { "user_id": "66f1c0d2a4b5c6d7e8f90127" },
"select": { "access_token": 0, "refresh_token": 0 }
}'Günlük giriş yapmış kullanıcı sayısı:
[
{ "$group": { "_id": { "$dateToString": { "format": "%Y-%m-%d", "date": "$created_at" } }, "users": { "$addToSet": "$user_id" } } },
{ "$project": { "day": "$_id", "count": { "$size": "$users" } } },
{ "$sort": { "day": -1 } }
]Bir oturumu sonlandırmak için token'ını iptal edin. Bir kullanıcının her yerdeki oturumunu kapatmak için logout-all=true ile iptal edin, parolasını değiştirin ya da kullanıcıyı dondurun.
İptal edilmiş token'lar#
İptal edilmiş token'lar, zaten süreleri dolacağı ana kadar saklanır; böylece o zamana kadar reddedilirler.
{
"_id": "66f1c0d2a4b5c6d7e8f901d0",
"token": "eyJhbGciOiJIUzI1NiIs…",
"token_type": "Bearer",
"revoked_at": "2026-01-01T12:30:00Z",
"retain_until": "2026-01-02T12:00:00Z",
"user_id": "66f1c0d2a4b5c6d7e8f90127",
"username": "ada",
"email_address": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"membership_id": "66f1c0d2a4b5c6d7e8f90123"
}Endpoint'ler#
| Metot | Route | Açıklama | Yetki |
|---|---|---|---|
GET | /memberships/{membershipId}/revoked-tokens | İptal edilmiş token'ları listeleme | tokens.read |
POST | /memberships/{membershipId}/revoked-tokens/_query | İptal edilmiş token'ları sorgulama | tokens.read |
Dokümantasyonda bir hata mı buldunuz? Issue açın