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çinrefresh_token verme türünü kullanın. Gizli istemciler client_secret göndermelidir.
openid scope’u verilmişse yeni bir id_token da gelir.
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ğinescope parametresi ekleyerek yeni erişim token’ını daha dar bir scope kümesiyle alabilirsiniz.
curl
scopegöndermezseniz token önceki scope’larla yenilenir.scopeiçindeki her değer ilk yetkilendirmede verilmiş olmalıdır. Aksi hâlde400 invalid_scopedö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.
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.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
422 OAUTH_CLIENT_ALREADY_REVOKED döner. Uygulama sahibi olmadığınız bir uygulama için yanıt 404 olur.
Oturumun sonlanması
Kullanıcı oturumu şu durumlarda biter. Her birinde sonraki yenilemeinvalid_grant ya da invalid_client ile reddedilir.
- Yenileme token’ı 7 gün boyunca kullanılmadı.
- Kullanıcı
/oauth/logoutile çıkış yaptı. - Uygulama sahibi uygulamayı iptal etti ya da sildi.
- Kullanıcı parolasını
revoke_other_tokens: trueile değiştirdi ya da hesabını sildi.
Çıkış yapma
Tarayıcıyı şu adrese yönlendirin:id_token_hintile çıkış yaparsanız uygulamanın o kullanıcıya ait token’ları iptal edilir. Parametre olmadan çıkış hiçbir token’ı iptal etmez vepost_logout_redirect_uriyok sayılır.- Süresi dolmuş bir
id_tokenda 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_uriuygulamada 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.