ErtisAuth

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.

json
{
	"_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"
}
AlanAçıklama
expire_timeAccess token'ın süresinin dolduğu an
retain_untilAccess ve refresh token bitiş zamanlarından geç olanı. MongoDB kaydı bu zamandan birkaç dakika sonra siler.
client_infoGirişin IP adresi ve user agent'ı; istekten ya da X-IpAddress ve X-UserAgent header'larından alınır
Uyarı: aktif token kayıtları token'ların kendisini içerir. Onları okuyabilen herkes o kullanıcılar adına işlem yapabilir. 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.

MetotRouteAçıklamaYetki
GET/active-tokens/{id}Aktif token getirmetokens.read.{id}
GET/active-tokensAktif token'ları listelemetokens.read
POST/active-tokens/_queryAktif token'ları sorgulamatokens.read
POST/active-tokens/_aggregateAggregation pipeline çalıştırmatokens.read

Örnekler#

Bir kullanıcının oturumları, token değerleri olmadan:

shell
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ı:

json
[
	{ "$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.

json
{
	"_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#

MetotRouteAçıklamaYetki
GET/memberships/{membershipId}/revoked-tokensİptal edilmiş token'ları listelemetokens.read
POST/memberships/{membershipId}/revoked-tokens/_queryİptal edilmiş token'ları sorgulamatokens.read

Dokümantasyonda bir hata mı buldunuz? Issue açın