CodeBlanks Logo Icon CodeBlanks

Token saklama

Auth token güvenli saklamayı öğrenirsin.

Token saklama

Oturum açma belirteci (token), kullanıcının oturumunu sürdürmesini sağlar. Sunucu, kullanıcı giriş yapınca bir token döndürür; bu token'ı güvenli depoya yazarsın. Her API isteğinde token'ı okuyup Authorization başlığına eklersin. Bu kalıp, kullanıcının tekrar şifre girmesini engeller.

Token genelde uzun bir dizedir: 'eyJhbGciOiJIUzI1NiIs...' gibi. Bu değer hassastır; AsyncStorage'a yazılmaz, yalnızca expo-secure-store'a yazılır. API isteği yaparken headers: { Authorization: `Bearer ${token}` } eklenir. Token süresi dolunca yenileme akışı çalışır; kullanıcı yeniden giriş yapar.

Bearer yöntemi

API isteklerinde token Bearer yöntemiyle gönderilir. Authorization başlığı Bearer <token> biçimindedir. Bu, sunucuya belirtecin bir 'bearer token' olduğunu söyler. Şablon dizesi ile yazılır: `Bearer ${token}`.

Bearer kelimesi büyük harfle başlar ve bir boşluk bırakılır. Bu yazım, OAuth 2.0 standardının bir parçasıdır. Sunucu, başlıkta Bearer önekini görmezse isteği reddeder. Bu yüzden doğru yazım şarttır. Token'ı getItemAsync ile okuduktan sonra hemen başlığa eklersin; istek tamamlandıktan sonra token bellekte tutulmaz.

Uygulama API isteğine token ekle

fetchWithAuth işlevini tamamla. const token = await SecureStore.getItemAsync('token') ile token'ı oku. Eğer !token ise return null. Değilse return fetch(url, { headers: { Authorization: `Bearer ${token}` } }) çağır. url parametre olarak verilir.

Başlangıç kodu

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

export async function fetchWithAuth(url) {
  // token'ı oku, Authorization başlığı ile fetch çağır
}

Örnek çözüm

App.js
const token = await SecureStore.getItemAsync('token');
if (!token) return null;
return fetch(url, {
  headers: { Authorization: `Bearer ${token}` },
});

Soru ve cevaplar

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

1 Token nerede saklanmalı?

App.js
const token = 'eyJhbGciOiJIUzI1NiIs...';
  • AsyncStorage (düz metin)
  • state'te (bellek)
  • SecureStore (şifreli) Doğru cevap
  • console.log ile

Açıklama: Token SecureStore'a yazılır; şifreli ve güvenli.

2 Authorization başlığını yaz

Soru
headers: { Authorization: `Bearer ____` }
Cevap
headers: { Authorization: `Bearer ${token}` }

Açıklama: ${token} ile token dizeye gömülür.

3 Parçayı rolüne eşle

Kavram Anlamı
setItemAsync Token'ı yazar
getItemAsync Token'ı okur
deleteItemAsync Token'ı siler
Bearer Authorization yöntemi

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