JSON Web Token (JWT) Nedir ve Nasıl Kullanılır?

Legandalith

Üye
Üye
Mesaj
135
Çözümler
5
Beğeni
140
Puan
769
Ticaret Puanı
0
Bir web projesi geliştirirken kullanıcı yetkilendirme işlemi oldukça önemlidir. Uygulamamızı yalnızca yetkili kullanıcıların erişim sağlaması için çeşitli yöntemler kullanırız. Bu çözümlerden birisi de token kullanmaktır. Bu noktada JWT (JSON Web Token), kimlik doğrulama ve bilgi alışverişi için kullanılan bir standart haline gelmiştir. Bu yazıda, JWT'nin ne olduğunu anlamaya ve nasıl kullanıldığını anlatmaya çalışacağım.

JWT Nedir?

JWT, verileri JSON formatında taşıyan ve bu verilerin doğruluğunu doğrulamak için dijital imza içeren bir token standardıdır. Bu token'lar genellikle kullanıcı kimlik doğrulama işlemlerinde, API güvenliği sağlamada ve veri paylaşımında kullanılır.

JWT, üç temel bölümden oluşur:


  • Header (Başlık): JWT'nin tipini ve kullanılan şifreleme algoritmasını belirten bir başlık bölümüdür.
  • Payload (İçerik): Gerçek verilerin bulunduğu bölümdür. Kullanıcı bilgileri gibi veriler burada yer alır.
  • Signature (İmza): Token'ın doğruluğunu kontrol etmek için kullanılan bir şifreleme algoritması ile imzalanmış verileri içerir.

Nasıl Kullanılır?

Adım 1: JWT Oluşturma


Öncelikle, kullanıcı bilgileri gibi verileri içeren bir JSON objesi oluşturulur. Bu veriler, daha sonra bir şifreleme algoritması ile imzalanacaktır.

JSON:
{
  "user_id": 123,
  "username": "kullanici123",
  "exp": 1636763541  // Token'ın geçerlilik süresi
}

Adım 2: Token Oluşturma

Oluşturulan JSON objesi, belirtilen bir şifreleme algoritması kullanılarak imzalanır ve bir JWT oluşturulur.

JavaScript:
const jwt = require('jsonwebtoken');

const secretKey = 'gizliAnahtar';
const token = jwt.sign({ user_id: 123, username: 'kullanici123' }, secretKey, { expiresIn: '1h' });

Adım 3: Token Doğrulama

Token alındıktan sonra, bu token'ın doğruluğu doğrulama işlemine tabi tutulmalıdır.

JavaScript:
const decodedToken = jwt.verify(token, secretKey);

Bu adımları takip ederek, kullanıcı kimlik doğrulama süreçlerinizde ve veri paylaşımlarınızda JWT'leri başarıyla kullanabilirsiniz.

JWT, güvenli ve hafif bir doğrulama mekanizması sunarak uygulamalarınızı daha güvenli hale getirmenize yardımcı olabilir. Ancak güvenlik önlemleri alırken dikkatli olunmalı ve özel anahtarlar gibi hassas bilgiler güvenli bir şekilde saklanmalıdır.

Unutmayınız ki bu anlatılanların hepsi en basit şekilde anlatımdır. Gerçek projelerde kullanırken mutlaka güvenlik önlemleri almanız gerekmektedir. Şuan genelde gerçek projelerde Access Token ve Refresh Token sistemi kullanılır.

Access token, daha kısa ömürlü ve belirli bir süre sonra geçersiz hale gelir. Refresh token ise access token'ın süresi dolduğunda otomatik olarak yeni bir access token alınmasını sağlayan bir anahtardır. Yani, sık sık şifre girmeniz gerekmez, ancak güvenlik sağlamak adına sürekli yenilenen bir anahtar kullanılır. Bu sayede kullanıcılar daha uzun süreli oturumlar boyunca uygulamalara kesintisiz bir şekilde erişebilirler.
 
Geri
Üst