JWT token
- React Native kursu
- İleri seviye
- Ders 45/83
- 5 dk
JWT token yönetimini öğrenirsin.
JWT nedir?
JWT (JSON Web Token), kimlik doğrulama sonrası sunucunun verdiği bir belirteçtir (token). Üç parçadan oluşur: header.payload.signature. Her parça noktayla ayrılır ve base64 ile kodlanmıştır. JWT stateless'tir; sunucu tarafında oturum tutmaya gerek bırakmaz.
Header, imzalama algoritmasını taşır (ör. HS256). Payload, kullanıcıya ait iddia (claim) bilgilerini taşır: sub (kullanıcı id), exp (bitiş süresi). Signature, header ve payload'un gizli anahtarla imzalanmış halidir. Uygulama, her istekte bu token'ı gönderir.
Token'ı sakla ve gönder
Login sonrası token, expo-secure-store'a yazılır. await SecureStore.setItemAsync('token', token) ile yazılır, getItemAsync('token') ile okunur. API isteği yaparken Authorization başlığına Bearer ön ekiyle eklenir.
Örnek başlık: Authorization: Bearer eyJhbGciOi.... Bearer öneki JWT taşıyıcı düzenini belirtir. Sunucu, imzayı doğrulayarak kullanıcıyı tanır. Token süresi dolduğunda yeniden login gerekir; exp claim bunu belirtir.
Uygulama Authorization başlığı oluştur
authHeader işlevini tamamla. Token'ı al ve { Authorization: \`Bearer ${token}\` } nesnesini döndür. Token boşsa boş nesne döndür.
Başlangıç kodu
export function authHeader(token) {
// Authorization başlığını döndür
}Örnek çözüm
export function authHeader(token) {
if (!token) return {};
return { Authorization: `Bearer ${token}` };
}Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 JWT kaç parçadan oluşur?
- Üç: header, payload, signature
- İki: kullanıcı ve parola Doğru cevap
- Dört: header, body, footer, imza
- Bir: yalnızca imza
Açıklama: JWT üç parçadan oluşur: header, payload, signature.
2 JWT parçalarını eşle
| Kavram | Anlamı |
|---|---|
header |
İmzalama algoritması |
payload |
Kullanıcı claim'leri |
signature |
Gizli anahtarla imza |
exp |
Bitiş süresi |
3 Authorization ön ekini yaz
headers: { Authorization: `____ ${token}` }
headers: { Authorization: `Bearer ${token}` }
Açıklama: Bearer, JWT taşıyıcı ön ekidir.