Skip to main content
Yetkilendirme kodunu token’a çevirdikten sonra elinizde bir erişim token’ı ve bir yenileme token’ı olur. Bu sayfa token’ların ne kadar yaşadığını, süresi dolunca nasıl yenileyeceğinizi ve token’ı nasıl iptal edeceğinizi anlatır. Kod akışının kendisi için Yetkilendirme kodu ve PKCE sayfasına bakın. Token isteklerinin tamamı kimlik sunucusuna gider: https://id.flextell.ai/oauth/token. Ortam adresleri için Ortamlar sayfasına bakın.

Token süreleri

Erişim token’ı kısa ömürlüdür. Her /api/v1 isteğinden önce süresine bakın ya da 401 UNAUTHENTICATED yanıtı aldığınızda token’ı yenileyip isteği tekrarlayın.
Erişim token’ları ve yenileme token’ları 15 gün / 30 gün yaşamaz. Eski belgelerde geçen bu değerler geçersizdir.

Token yenileme

Yenileme için refresh_token verme türünü kullanın. Gizli istemciler client_secret göndermelidir.
Yanıt yeni bir erişim token’ı ve yeni bir yenileme token’ı içerir. openid scope’u verilmişse yeni bir id_token da gelir.
Yenileme token’ları her kullanımda döner. İstek başarılı olduğunda eski yenileme token’ı ve ona bağlı erişim token’ı hemen geçersiz olur. Yeni yenileme token’ını yanıtı alır almaz kaydedin. Aynı token’ı birden çok istekle aynı anda yenilemeye çalışmayın; yalnızca biri başarılı olur.
Uygulamanız en az haftada bir kez yenileme yaparsa kullanıcı oturumu açık kalır. 7 gün boyunca hiç yenileme yapılmazsa kullanıcının yeniden giriş yapması gerekir.

Yenileme hataları

Hatalar OAuth biçiminde döner: error, error_description ve bazen hint alanı. Genel hata biçimi için Kimlik doğrulama hataları sayfasına bakın. invalid_grant aldığınızda yeniden denemeyin. Kullanıcıyı yeni bir yetkilendirme akışına yönlendirin. /oauth/token uç noktası IP başına dakikada 60 istekle sınırlıdır. API istekleri için sınırlar Oran sınırları sayfasındadır.

Scope daraltma

Yenileme isteğine scope parametresi ekleyerek yeni erişim token’ını daha dar bir scope kümesiyle alabilirsiniz.
curl
  • scope göndermezseniz token önceki scope’larla yenilenir.
  • scope içindeki her değer ilk yetkilendirmede verilmiş olmalıdır. Aksi hâlde 400 invalid_scope döner.
  • Daraltma kalıcıdır. Daraltılmış bir yenileme token’ından sonra scope’u tekrar genişletemezsiniz.
  • Uygulamanızın scope listesinden sonradan çıkarılmış scope’lar, hata verilmeden yeni token’dan düşer.
Bir iş parçacığı yalnızca okuma yapıyorsa ona *:read scope’larından oluşan daraltılmış bir token verin. Scope listesi için Scope’lar sayfasına bakın.

Yeni scope isteme

Yenileme ile yeni scope alamazsınız. Daha önce verilmemiş bir scope gerekiyorsa şu adımları izleyin.
1

Scope'u uygulamaya ekleyin

PUT /api/v1/oauth/clients/{id}/scopes ile uygulamanın scope listesini güncelleyin. Bu çağrı oauth_clients:write scope’unu, UpdateScopes:Client iznini ve X-Tenant başlığını gerektirir. Panelde Bağlantılar → Uygulamalar ekranındaki Yetkileri Güncelle işlemi de aynı işi yapar; ancak bu sürümde panelin scope seçicisi liste yüklenemediği için çalışmayabilir, bu durumda API’yi kullanın. Gövdede scopes dizisi bulunmalı ve liste mevcut scope’ların tamamını içermelidir; liste değiştirilir, eklenmez. Ayrıntı için OAuth uygulamaları sayfasına bakın.
2

Kullanıcıyı yeniden yetkilendirin

Kullanıcıyı /oauth/authorize adresine, güncel scope listesiyle gönderin. Kullanıcı yeni izinleri onaylar ve yeni bir kod döner.
3

Kodu değiştirin

Kodu /oauth/token ile token’a çevirin. Elinizdeki eski token’ların scope’u değişmez.
Scope listesini değiştirmeniz mevcut erişim token’larını etkilemez; onlar süreleri (5 dakika) dolana kadar eski scope’larıyla çalışır. Yetkilendirme isteği ise uygulamaya izin verilmeyen ya da tanınmayan her scope için invalid_scope ile baştan başarısız olur. API, token’ınızda gereken scope yoksa 403 FORBIDDEN ve Invalid scope(s) provided. mesajı döndürür. Bu durumda yukarıdaki adımlarla yeniden yetkilendirin. Scope ile klinik izni ayrı kavramlardır; ayrıntı için Kimlik doğrulama genel bakış sayfasına bakın.

Token iptali

Flextell’de RFC 7009 /oauth/revoke uç noktası ve token introspection uç noktası yoktur. Token’ı iptal etmenin yolları aşağıdadır. Uygulama sahibi uç noktaları oauth_clients:write scope’u, Revoke:Client ya da Delete:Client izni ve X-Tenant başlığı gerektirir. İzin, başlıkta verdiğiniz klinikte aranır. Başlık için Klinikler ve X-Tenant sayfasına bakın.
curl
Zaten iptal edilmiş bir uygulamayı tekrar iptal ederseniz 422 OAUTH_CLIENT_ALREADY_REVOKED döner. Uygulama sahibi olmadığınız bir uygulama için yanıt 404 olur.
Tüm kullanıcıları durdurmak istiyorsanız DELETE …/tokens yerine POST …/revoke kullanın. DELETE …/tokens yenileme token’larını iptal etmez; sahipleri yeni erişim token’ı alabilir.

Oturumun sonlanması

Kullanıcı oturumu şu durumlarda biter. Her birinde sonraki yenileme invalid_grant ya da invalid_client ile reddedilir.
  • Yenileme token’ı 7 gün boyunca kullanılmadı.
  • Kullanıcı /oauth/logout ile çıkış yaptı.
  • Uygulama sahibi uygulamayı iptal etti ya da sildi.
  • Kullanıcı parolasını revoke_other_tokens: true ile değiştirdi ya da hesabını sildi.

Çıkış yapma

Tarayıcıyı şu adrese yönlendirin:
  • id_token_hint ile çıkış yaparsanız uygulamanın o kullanıcıya ait token’ları iptal edilir. Parametre olmadan çıkış hiçbir token’ı iptal etmez ve post_logout_redirect_uri yok sayılır.
  • Süresi dolmuş bir id_token da kabul edilir.
  • Üçüncü taraf uygulamalarda kullanıcı önce Çıkış Yap ve İptal düğmeleri olan bir onay sayfası görür.
  • Yönlendirme, post_logout_redirect_uri uygulamada kayıtlı adreslerden biriyle birebir eşleşirse yapılır. Eşleşmezse kullanıcı bir Çıkış Yapıldı sayfası görür.
  • Çıkış yalnızca o tarayıcıdaki kimlik sunucusu oturumunu sonlandırır. Kullanıcının başka cihazlardaki oturumları açık kalabilir.
Çıkış akışının tamamı için OpenID Connect sayfasına bakın.