code’u alırsınız, code’u access_token ile değişirsiniz ve token’ı her istekte Authorization: Bearer header’ı olarak gönderirsiniz.
Neden OAuth 2.0?
Flextell kliniklere ait hassas sağlık verileri barındırır. Kullanıcıdan parolasını almak yerine OAuth, kullanıcının yalnızca uygulamanızın ihtiyaç duyduğu izinler (scope) için yetki vermesine izin verir. Parolası hiçbir zaman sizin sisteminize uğramaz ve kullanıcı istediği zaman yetkiyi iptal edebilir.
Akış diyagramı
Temel terimler
Client ID & Client Secret. Flextell panelinde oluşturduğunuz OAuth uygulamasının kimliği ve gizli anahtarı.client_secret yalnızca güvenli (server-side) bir ortamda saklanmalıdır.
Authorization Code. Kullanıcı yetki verdikten sonra redirect_uri’ye eklenen kısa ömürlü kod. Yalnızca bir kez, access token’a değiştirilmek için kullanılır.
Access Token. API isteklerinde Authorization: Bearer <token> olarak gönderdiğiniz JWT. Flextell’de access token’lar 15 gün geçerlidir.
Refresh Token. Access token süresi dolduğunda yenisini almak için kullanılır. Flextell’de refresh token’lar 30 gün geçerlidir. Detay: Token Yenileme.
Scope. Uygulamanıza verilen izinler (ör. customers:read, appointments:write). Access token yalnızca onaylanmış scope’lar için çalışır. Tam liste: Scopes.
State. CSRF koruması için yetkilendirme isteğine eklediğiniz rastgele string. Callback’e aynı değerle geri döner; eşleşmezse isteği reddetmelisiniz.
Desteklenen grant’lar
Son kullanıcı adına istek atmak için standart akış. Tüm web/mobil uygulamalar için tercih edilen yöntemdir. SPA ve native mobil için PKCE uzantısı ile birlikte kullanın.
Access token’ı yenilemek için.
offline_access scope’u gerekmez; refresh token tokenle birlikte otomatik döner.client_credentials ve password grant’ları şu anda desteklenmemektedir. Sunucu-sunucu entegrasyonları için de Authorization Code akışını, ilgili klinik kullanıcısı adına bir kez tamamlayıp refresh token saklamanızı öneririz.OpenID Connect (kimlik doğrulama)
Flextell’i bir kimlik sağlayıcı olarak kullanmak — yani sadece API’ye erişim değil, “Sign in with Flextell” akışı kurmak — istiyorsanızscope parametresine openid ekleyin. Yanıta bir id_token eklenir ve /oauth/userinfo, /oauth/jwks, /.well-known/openid-configuration gibi OIDC uçlarını kullanabilirsiniz. Detay: OpenID Connect.
Logout (end_session_endpoint)
Kullanıcıyı uygulamanızdan ve Flextell oturumundan çıkarmak için OIDC RP-Initiated Logout akışını (/oauth/logout) kullanabilirsiniz. Detay: Token İptali.
Token ömürleri
| Token türü | Süre |
|---|---|
| Access token | 15 gün |
| Refresh token | 30 gün |
| Personal access token | 6 ay |
Sonraki adımlar
Uygulama Oluşturma
Panelden OAuth uygulaması açın.
Authorization Code Akışı
code ↔ token değişiminin adım adım detayı.
OpenID Connect
id_token, discovery URL, userinfo.
PKCE
SPA ve mobil için güvenli code exchange.