require_once 'vendor/autoload.php'; // firebase/php-jwt kütüphanesini yükleyin

use FirebaseJWTJWT;

// Kullanıcı bilgileri $user = [     'id' => 123,     'username' => 'john_doe',     'email' => '[email protected]' ]; // JWT oluşturma işlemi $secretKey = 'your_secret_key'; // JWT'nin imzalanması için kullanılacak gizli anahtar $issuedAt = time(); // JWT'nin veriliş tarihi $expire = $issuedAt + 3600; // JWT'nin geçerlilik süresi (1 saat)

 

$payload = [     'iat' => $issuedAt,     'exp' => $expire,     'data' => $user ];

 

$jwt = JWT::encode($payload, $secretKey, 'HS256');

nbsp;

echo 'Oluşturulan JWT: ' . $jwt;

 

// JWT doğrulama işlemi $decodedJwt = JWT::decode($jwt, $secretKey, ['HS256']);

echo 'Doğrulanan JWT: '; print_r($decodedJwt);


 

 

 

Yukarıdaki örnekte, JWT oluşturma ve doğrulama işlemleri için "firebase/php-jwt" kütüphanesi kullanılmıştır. Bu kütüphaneyi projenize yüklemek için Composer'ı kullanabilirsiniz (composer require firebase/php-jwt).

JWT oluşturma adımları şu şekildedir:

  1. $secretKey değişkenine gizli anahtarınızı atayın.
  2. $issuedAt değişkenine geçerlilik tarihiyle birlikte şu anki zamanı atayın.
  3. $expire değişkenine JWT'nin geçerlilik süresini ekleyin (örneğin, 1 saat).
  4. $payload dizisinde JWT'nin içeriği belirtilir. Bu örnekte, "iat" (veriliş tarihi) ve "exp" (geçerlilik süresi) gibi standart JWT başlıkları ile kullanıcı bilgileri ($user) yer alır.
  5. JWT::encode() yöntemini kullanarak JWT oluşturun.

JWT doğrulama adımları şu şekildedir:

  1. JWT::decode() yöntemini kullanarak JWT'yi doğrulayın. İmzalama anahtarını ($secretKey) ve kullanılan algoritmayı (burada HS256) sağlayın.
  2. Doğrulanan JWT'nin içeriğini kullanarak işlemlerinizi gerçekleştirin.

Bu örnekte, JWT'yi ekrana yazdırıyoruz. Uygulamanızda, JWT'yi istemciye iletebilir ve istemci tarafında saklayarak kullanabilirsiniz. Doğrulama adımında, JWT içeriğindeki verilere erişebilirsiniz.

Lütfen your_secret_key bölümünü gerçek bir gizli anahtarla değiştirin ve kütüphaneyi yüklemek için gerekli adı giriniz. 

Projenizde bir üyelik yani değişken olarak kullanmak isterseniz; 

 

 

// JWT doğrulama işlemi
try {
    $decodedJwt = JWT::decode($jwt, $secretKey, ['HS256']);
    
    // Doğrulanan JWT içeriği
    $userId = $decodedJwt->data->id;
    $username = $decodedJwt->data->username;
    $email = $decodedJwt->data->email;

    // Örnek kullanıcı bilgilerini kullanarak işlemleri gerçekleştirin
    echo 'Kullanıcı ID: ' . $userId . '
';
    echo 'Kullanıcı Adı: ' . $username . '
';
    echo 'E-posta: ' . $email . '
';

} catch (Exception $e) {
    echo 'JWT doğrulama hatası: ' . $e->getMessage();
}

 

Yukarıdaki örnekte, JWT'nin doğrulama işlemi gerçekleştirilmektedir. JWT::decode() yöntemi kullanılarak JWT doğrulanır ve içeriği $decodedJwt değişkenine atanır.

Doğrulanan JWT içeriğine erişmek için $decodedJwt değişkenini kullanabilirsiniz. Örneğin, $decodedJwt->data->id ile kullanıcı ID'sine, $decodedJwt->data->username ile kullanıcı adına ve $decodedJwt->data->email ile e-posta adresine erişebilirsiniz.

Bu örnekte, JWT doğrulama işlemi try-catch bloğu içinde yer almaktadır. JWT doğrulanamazsa, bir hata oluşacaktır ve catch bloğu çalışacaktır. Bu şekilde, JWT doğrulama hatası durumunda ilgili hata mesajını yakalayabilirsiniz.

JWT doğrulama işleminden sonra, JWT içeriğindeki verilere erişerek işlemlerinizi gerçekleştirebilirsiniz.

Lütfen kodu ihtiyaçlarınıza ve mevcut projenize göre uyarlayın.