Token saklama
- React Native kursu
- İleri seviye
- Ders 41/83
- 5 dk
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
import * as SecureStore from 'expo-secure-store';
export async function fetchWithAuth(url) {
// token'ı oku, Authorization başlığı ile fetch çağır
}Örnek çözüm
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ı?
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
headers: { Authorization: `Bearer ____` }
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 |