Mobile App Wiki

Mobile App Wiki

mobileapp.wiki

Ana Sayfa

Kategoriler

mobileapp.wiki

Mobile App Wiki

Mobil uygulama geliştirme bilgi tabanı

GizlilikAna SayfaSitemapRSS
© 2026 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.

authenticationoauthjwtbiometricface idtouch idpkcesign in with applegoogle sign-inkeychainsecurestore

İç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 makaleyi nasıl buldunuz?

Paylaş

← Önceki

React Native

Sonraki →

Flutter

İlgili Makaleler

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.