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:
$secretKey
değişkenine gizli anahtarınızı atayın.$issuedAt
değişkenine geçerlilik tarihiyle birlikte şu anki zamanı atayın.$expire
değişkenine JWT'nin geçerlilik süresini ekleyin (örneğin, 1 saat).$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.JWT::encode()
yöntemini kullanarak JWT oluşturun.
JWT doğrulama adımları şu şekildedir:
JWT::decode()
yöntemini kullanarak JWT'yi doğrulayın. İmzalama anahtarını ($secretKey
) ve kullanılan algoritmayı (buradaHS256
) sağlayın.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.