CodeBlanks Logo Icon CodeBlanks

Logout

Logout ve token temizleme öğrenirsin.

Logout

Logout, kullanıcının uygulamadan çıkışıdır. İki şey yapılır: token silinir ve user state'i null yapılır. SecureStore.deleteItemAsync('token') ile token cihazdan kaldırılır; setUser(null) ile auth context sıfırlanır.

Ardından kullanıcı login ekranına yönlendirilir. navigation.replace('Login') tercih edilir; böylece geri tuşu korumalı ekranlara dönemez. Logout butonuna basıldığında handleLogout işlevi çalışır; bu işlev async olmalıdır.

Token'ı güvenli depodan sil

Logout sırasında cihazdaki token da silinir. await SecureStore.deleteItemAsync('token') ile güvenli depodan kaldırılır. Bu çağrı asenkron olduğundan handleLogout async olmalıdır. Silme başarısız olsa bile setUser(null) çağrılır; kullanıcı yine de login'e yönlendirilir.

Logout işlevi genelde auth context'in logout action'ı olarak tanımlanır. Bileşenler const { logout } = useContext(AuthContext) ile alır ve buton tıklamasında çağırır. Böylece logout mantığı tek yerde toplanır.

Uygulama handleLogout yaz

handleLogout işlevini tamamla. await SecureStore.deleteItemAsync('token') ile token'ı sil. Sonra setUser(null) çağır.

Başlangıç kodu

App.js
import * as SecureStore from 'expo-secure-store';

export function makeLogout(setUser) {
  async function handleLogout() {
    // token'ı sil, user'ı sıfırla
  }
  return { handleLogout };
}

Örnek çözüm

App.js
import * as SecureStore from 'expo-secure-store';

export function makeLogout(setUser) {
  async function handleLogout() {
    await SecureStore.deleteItemAsync('token');
    setUser(null);
  }
  return { handleLogout };
}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Logout neden setUser(null) yapar?

  • Ekranı yeniden boyamak için
  • Stilleri değiştirmek için
  • Animasyonu hızlandırmak için
  • Auth context'i sıfırlamak için Doğru cevap

Açıklama: setUser(null) auth context'i sıfırlar.

2 user'ı sıfırla

Soru
function logout() {
  setUser(____);
}
Cevap
function logout() {
  setUser(null);
}

Açıklama: null, kullanıcı yok anlamına gelir.

3 Logout parçalarını eşle

Kavram Anlamı
deleteItemAsync Token'ı siler
setUser(null) Context'i sıfırlar
navigation.replace Login'e atlar
async Await gerektirir

İleri seviye bölümündeki tüm dersler