Mobile App WikiMobile App Wiki
WikiApp DiscoverDiscuss

Wiki

    mobileapp.wiki

    Wiki

    • ASO17
    • Monetizasyon14
    • Mağaza Politikaları20
    • Metrikler15
    • Geliştirme25
    • Pazarlama15
    • Hukuk9
    • UI/UX14
    • Test & QA10
    • Altyapı10

    mobileapp.wiki

    Ana Sayfa/Geliştirme/Authentication Patterns (OAuth, JWT, Biometric)
    Geliştirme4 dk okuma

    Authentication Patterns (OAuth, JWT, Biometric)

    Mobil uygulamalarda kimlik dogrulama yontemleri. OAuth 2.0 + PKCE, JWT token yonetimi, biyometrik giris ve guvenli token saklama rehberi.

    Authentication Patterns (OAuth, JWT, Biometric)

    İçindekiler

    Kimlik Dogrulama Neden Kritik?OAuth 2.0 + PKCE FlowGoogle Sign-In vs Apple Sign-InGoogle Sign-InApple Sign-InEntegrasyon FarklariJWT Access ve Refresh Token YonetimiToken SaklamaBiyometrik Kimlik DogrulamaiOS (Face ID / Touch ID)Android (BiometricPrompt)Expo ve React NativeSession Yonetimi Best Practices2026 Best Practicesİlgili Konular

    Kimlik Dogrulama Neden Kritik?

    Mobil uygulamada auth sistemi sadece "giris yap" butonu degildir. Kullanicinin verilerini korumak, session'lari yonetmek ve ucuncu parti servislerle guvenli iletisim kurmak icin saglam bir auth mimarisine ihtiyacin var. Yanlis bir token storage ya da eksik bir PKCE implementasyonu ciddi guvenlik aciklarina yol acar.

    OAuth 2.0 + PKCE Flow

    Mobil uygulamalarda klasik OAuth 2.0 Authorization Code flow'u tek basina yeterli degil. Mobil cihazlarda client secret guvenli saklanamayacagi icin PKCE (Proof Key for Code Exchange) kullanmak zorunlu.

    PKCE flow su sekilde calisir:

    • Uygulama rastgele bir code_verifier olusturur
    • Bu degerden SHA256 ile code_challenge turetilir
    • Authorization isteginde code_challenge gonderilir
    • Token exchange sirasinda code_verifier gonderilir
    • Sunucu ikisini karsilastirarak dogrulama yapar

    Bu sayede authorization code ele gecirilse bile, code_verifier olmadan token alinamaz.

    Google Sign-In vs Apple Sign-In

    Google Sign-In

    • Android'de Google Play Services uzerinden calisir (tek tikla giris)
    • iOS'ta Google SDK gerekir
    • ID token doner, backend'de dogrulanir
    • Kullanici email, ad ve profil fotosu alinabilir

    Apple Sign-In

    • iOS 13+ cihazlarda desteklenir
    • Apple zorunlulugu: Ucuncu parti giris (Google, Facebook vb.) sunuyorsan Apple Sign-In da sunmak zorundasin. Bu kural 2026'da hala gecerli ve ihlali app rejection sebebi.
    • Kullanici email'ini gizleyebilir ("Hide My Email" ile relay adresi verir)
    • Ilk giris disinda Apple kullanici bilgisi gondermez, bu yuzden ilk giristeki verileri mutlaka kaydet

    Entegrasyon Farklari

    OzellikGoogle Sign-InApple Sign-In
    ZorunlulukOpsiyonelDiger social login varsa zorunlu
    Email gizlemeYokVar (relay email)
    Veri tekrariHer giriste gelirSadece ilk giriste gelir
    Android destegiNativeWeb-based (sınırlı)
    Token formatiID Token (JWT)Identity Token (JWT)

    JWT Access ve Refresh Token Yonetimi

    Mobil uygulamada token yonetimi web'den farklidir cunku tarayici cookie'si yok.

    • Access Token: Kisa omurlu (15-30 dk), her API isteginde gonderilir
    • Refresh Token: Uzun omurlu (7-30 gun), yeni access token almak icin kullanilir
    • Access token suresi doldugunda refresh token ile sessizce yenilenir
    • Refresh token calinan bir cihazda tehlikelidir, bu yuzden token rotation uygulanmali

    Token rotation: Her refresh isleminde eski refresh token gecersiz olur, yenisi verilir. Boylece calinti token bir kez kullanilabilir.

    Token Saklama

    Token'lari duz metin olarak AsyncStorage veya SharedPreferences'a kaydetmek büyük bir hatadir.

    PlatformGuvenli DepolamaAciklama
    iOSKeychain ServicesDonanim sifreleme, uygulama sandbox'i
    AndroidAndroid Keystore + EncryptedSharedPreferencesDonanim destekli sifreleme
    React Nativeexpo-secure-storeKeychain (iOS) ve Keystore (Android) sarmalar

    expo-secure-store ile kullanim cok basittir:

    • SecureStore.setItemAsync('accessToken', token) ile kaydet
    • SecureStore.getItemAsync('accessToken') ile oku
    • SecureStore.deleteItemAsync('accessToken') ile sil

    Biyometrik Kimlik Dogrulama

    iOS (Face ID / Touch ID)

    • LocalAuthentication framework'u ile entegre edilir
    • Info.plist'e NSFaceIDUsageDescription eklenmeli
    • Cihazda biyometri yoksa PIN/parola fallback'i otomatik sunulur

    Android (BiometricPrompt)

    • AndroidX Biometric kutuphanesi kullanilir
    • BIOMETRIC_STRONG (parmak izi, yuz) ve BIOMETRIC_WEAK ayrimlari var
    • Device Credential fallback eklenebilir (PIN, desen, sifre)

    Expo ve React Native

    • expo-local-authentication paketi her iki platformu da sarmalar
    • authenticateAsync() tek bir cagriyla biyometrik dogrulama baslatir
    • isEnrolledAsync() ile cihazda biyometri kayitli mi kontrol edilir

    Session Yonetimi Best Practices

    • Arka plandan donuste token gecerliligini kontrol et
    • Uzun sure kullanilmayan cihazda oturumu sonlandir (idle timeout)
    • Cihaz degisikliginde yeniden dogrulama iste
    • Kullaniciya aktif oturumlari gorme ve sonlandirma imkani sun
    • Hassas islemlerde (odeme, sifre degisikligi) tekrar biyometrik dogrulama iste

    2026 Best Practices

    • PKCE her OAuth flow'da standart, implicit grant kullanma
    • Passkey destegi (FIDO2/WebAuthn) yayginlasiyor, desteklemeyi planla
    • Token'lari her zaman platform'un guvenli deposunda sakla
    • Refresh token rotation mutlaka aktif olsun
    • Apple Sign-In zorunlulugu devam ediyor, goz ardi etme
    • Multi-factor authentication (MFA) opsiyonel olarak sun

    Kullaniciya mumkun olan en az surtucu giris deneyimini sun ama guvenlikten odun verme. Biyometrik giris bunu dengelemek icin en iyi aractir.

    İlgili Konular

    • React Native
    • Keystore & App Signing (Android)

    Bu içeriği nasıl buldunuz?

    Paylaş

    ← Önceki

    React Native

    Sonraki →

    Flutter

    İlgili İçerikler

    React Native

    Meta'nın JavaScript tabanlı cross-platform framework'ü React Native rehberi. iOS ve Android native uygulama geliştirme, Expo ve New Architecture.

    Flutter

    Google'ın Dart tabanlı cross-platform UI toolkit'i Flutter rehberi. Tek codebase ile iOS, Android, Web ve Desktop uygulama geliştirme stratejileri.

    Expo

    React Native için hızlı geliştirme platformu Expo rehberi. EAS Build, OTA güncelleme, cloud build, managed workflow ve SDK modülleri detayları.

    CI/CD (Mobil)

    Mobil uygulamalar için CI/CD pipeline rehberi. EAS Build, Fastlane, Bitrise, Codemagic ve GitHub Actions ile sürekli entegrasyon ve dağıtım.

    Code Signing (iOS)

    iOS uygulama imzalama süreci rehberi. Certificate ve provisioning profile yönetimi, automatic ve manual signing, Fastlane Match ve CI/CD entegrasyonu.

    Android Kapalı Test

    Android Kapalı Test hizmeti için androidtesti.com platformunu ziyaret edin.

    androidtesti.com