T
TurBay Docs v0.5
Platforma Dön

1. Genel Bakış ve Mimari

TurBay, birden fazla web ve mobil uygulamanın tek bir kullanıcı hesabı üzerinden güvenle kullanılmasını sağlayan merkezi Single Sign-On (SSO) ve Birleşik Veri (Unified Data) platformudur.

Temel Prensipler
  • Merkezi Kimlik: Kullanıcılar tek şifre ile ekosistemdeki tüm uygulamalara bağlanır.
  • OAuth 2.0 / OIDC Standardı: RFC 6749 uyumlu Yetkilendirme Kodu (Authorization Code) akışı.
  • TurBayUI v0.5: Samsung One UI felsefesiyle tasarlanmış, sade ve tutarlı tasarım sistemi.
  • Birleşik Veri Katmanı: Kullanıcı ayarlarının, temalarının ve ortak notlarının tüm uygulamalarda anında eşitlenmesi.

2. TurBayUI v0.5 Tasarım Şablonu

TurBayUI v0.5, ekosisteme dahil edilecek tüm uygulamalarda ortak görsel bütünlüğü sağlamak amacıyla bağımsız tek bir CSS dosyası olarak tasarlanmıştır. Neon ve karmaşık gölgeler içermez; sakin, mat ve ergonomik Samsung One UI öğeleri barındırır.

Projeye Dahil Etme

Herhangi bir HTML sayfasına tek satırda bağlayabilirsiniz:

HTML Entegrasyonu
<!-- TurBayUI v0.5 Stilleri -->
<link rel="stylesheet" href="https://turbay.com.tr/assets/css/turbay-ui.css?v=2.0">

<!-- Yardımcı Etkileşim Kütüphanesi (Toast, Modal, Tema) -->
<script src="https://turbay.com.tr/assets/js/turbay-ui.js?v=2.0"></script>

Temel CSS Bileşenleri

Bileşen Sınıf (Class) Açıklama
Butonlar .tb-btn .tb-btn-primary Düz One UI mavi butonu (hover ve active basma animasyonlu).
Kart Grubu .tb-card 22px squircle köşeli, hafif 1px sınır çizgili One UI yüzeyi.
Kapsül Menü .tb-menu-pills Sekmeli sayfa veya filtre seçim çubuğu.
One UI Anahtar .tb-switch Akıcı yay animasyonlu açma/kapama anahtarı.
İstatistik Kutusu .tb-stat-tile Metrik, sayaç ve widget gösterimi.
Rozetler .tb-badge .tb-badge-primary Durum hapı (Resmi, Doğrulanmış, Aktif vb.).

3. Hızlı SSO Entegrasyonu (Drop-in SDK)

Harici web uygulamanıza TurBay Single Sign-On butonunu eklemek için resmi JavaScript SDK'sını kullanabilirsiniz:

JavaScript SDK
<script src="https://turbay.com.tr/assets/js/sso-client.js?v=2.0"></script>
<script>
  // 1. İstemci Tanımlaması
  const sso = new TurBaySSO({
    clientId: 'tb_client_ornek_123',
    redirectUri: window.location.href,
    scope: 'profile email data.read data.write'
  });

  // 2. Giriş Butonu Tıklandığında
  document.getElementById('btn-login').addEventListener('click', () => {
    sso.login(); // Kullanıcıyı TurBay izin ekranına yönlendirir
  });

  // 3. Yönlendirme Sonrası (Callback)
  const code = sso.getCodeFromUrl();
  if (code) {
    // Kodu sunucunuza iletip token takası yapın
    console.log('Yetkilendirme Kodu:', code);
  }
</script>

4. OAuth 2.0 REST API Uç Noktaları

1. Yetkilendirme Başlatma (Authorize)

Kullanıcıyı yetki onay ekranına göndermek için:

GET Authorize
GET https://turbay.com.tr/oauth/authorize.php?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&scope=profile+email&state={STATE}

2. Token Takası (Exchange Token)

Alınan tek kullanımlık code değerini gizli anahtarınızla erişim belirtecine (access token) çevirin:

POST Token
POST https://turbay.com.tr/oauth/token.php
Content-Type: application/json

{
  "grant_type": "authorization_code",
  "code": "tb_code_...",
  "client_id": "tb_client_...",
  "client_secret": "tb_secret_...",
  "redirect_uri": "https://siteniz.com/callback"
}

Başarılı Yanıt (HTTP 200):

JSON Yanıtı
{
  "access_token": "tb_at_994a...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "profile email"
}

3. Kullanıcı Bilgisi (UserInfo)

Aldığınız Bearer Token ile kullanıcının profil ve doğrulanmış e-postasını çekin:

GET UserInfo
GET https://turbay.com.tr/oauth/userinfo.php
Authorization: Bearer tb_at_994a...

Dönen Bilgi (JSON):

JSON Profil
{
  "sub": "usr_abc123",
  "username": "ahmetyilmaz",
  "displayName": "Ahmet Yılmaz",
  "email": "ahmet@posta.com",
  "avatarUrl": "https://api.dicebear.com/...",
  "role": "user"
}

5. Birleşik Veri (Unified Data Store)

Kullanıcının uygulamalar arası ortak verilerini (tercihler, tema ayarları, notlar) okuyabilir ve güncelleyebilirsiniz.

Veri Okuma

GET Preferences
GET https://turbay.com.tr/api.php?action=data/get&namespace=preferences
Authorization: Bearer tb_at_...

Veri Kaydetme ve Senkronizasyon

POST Unified Data
POST https://turbay.com.tr/api.php?action=data/put
Authorization: Bearer tb_at_...
Content-Type: application/json

{
  "namespace": "preferences",
  "data": {
    "theme": "dark",
    "accentColor": "#0072DE",
    "notificationsEnabled": true
  }
}

6. Sunucu Taraflı Örnek Kod (PHP cURL)

Token takasını PHP backend'iniz üzerinden güvenle gerçekleştirmek için örnek fonksiyon:

PHP cURL Entegrasyonu
<?php
function exchange_turbay_token($code, $clientId, $clientSecret, $redirectUri) {
    $ch = curl_init('https://turbay.com.tr/oauth/token.php');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
        'grant_type' => 'authorization_code',
        'code' => $code,
        'client_id' => $clientId,
        'client_secret' => $clientSecret,
        'redirect_uri' => $redirectUri
    ]));

    $response = curl_exec($ch);
    curl_close($ch);
    return json_decode($response, true);
}
?>