Günümüzde “giriş sistemi” deyince akla artık klasik “kullanıcı adı – şifre – oturum başlat” üçlüsü gelmiyor.
Modern sistemler JWT (JSON Web Token) kullanıyor.
Neden? Çünkü hızlı, güvenli ve REST API'lerle şahane çalışıyor.
Ve evet hacı, PHP ile de rahatlıkla JWT sistemi kurabilirsin.
JWT, sunucu ile istemci arasında kimlik doğrulama ve veri iletimi için kullanılan bir tokendır.
İçinde kullanıcı bilgileri, geçerlilik süresi gibi veriler olur. Şifrelenir, imzalanır ve frontend’e gönderilir.
Frontend her istekte bu token'ı gönderir.
Yani artık $_SESSION
yok, token var.
Her şey JSON, her şey API uyumlu.
JWT oluşturmak için Firebase PHP JWT kütüphanesini kullanacağız.
Kurulum (Composer ile):
composer require firebase/php-jwt
<?php
require 'vendor/autoload.php';
use \Firebase\JWT\JWT;
use \Firebase\JWT\Key;
$secretKey = 'gizli_anahtar';
$kullanici = $_POST['kullanici'];
$sifre = $_POST['sifre'];
// örnek kullanıcı (veritabanından da çekebilirsin)
if($kullanici == 'admin' && $sifre == '123456'){
$payload = [
'iss' => 'seninsiten.com',
'iat' => time(),
'exp' => time() + 3600, // 1 saat geçerli
'kullanici' => $kullanici
];
$jwt = JWT::encode($payload, $secretKey, 'HS256');
echo json_encode([
'status' => 'success',
'token' => $jwt
]);
} else {
echo json_encode([
'status' => 'error',
'message' => 'Kullanıcı adı veya şifre yanlış'
]);
}
?>
<?php
require 'vendor/autoload.php';
use \Firebase\JWT\JWT;
use \Firebase\JWT\Key;
$secretKey = 'gizli_anahtar';
$headers = getallheaders();
if(!isset($headers['Authorization'])){
die("Yetkisiz erişim.");
}
$token = str_replace('Bearer ', '', $headers['Authorization']);
try {
$decoded = JWT::decode($token, new Key($secretKey, 'HS256'));
echo "Hoşgeldin, " . $decoded->kullanici;
} catch (Exception $e) {
http_response_code(401);
echo "Geçersiz token.";
}
?>
Frontend tarafında token’ı aldıktan sonra:
localStorage
veya sessionStorage
’a kaydedersinAuthorization: Bearer [token]
başlığıyla eklersinJWT kullanarak, PHP’de klasik oturum sisteminin ötesine geçiyoruz.
Artık kullanıcı giriş yaptı mı, token’ı aldı mı, her yerden tanınır hale gelir.
Ve bu sistem hem sade, hem taş gibi güvenli.
Yani hacı:
Şifreyle girdin, token’la kaldın. Oturumla uğraşmadın, çerezle karışmadın.