C# JSON Web Token (JWT) Oluşturma ve Doğrulama

Admin

Herşeyi Burada Bulabilirsin
Yönetici
Administrator
Akisor
Katılım
9 Haziran 2025
Mesajlar
66
Çözümler
1
Tepkime puanı
0
Puan
6
Konum
Türkiye
Web sitesi
akisforum.com
C# ile JWT (JSON Web Token) Oluşturma ve Doğrulama Rehberi

🔐 JWT Nedir ve Nerede Kullanılır?
JWT, yani JSON Web Token, kimlik doğrulama ve veri paylaşımında kullanılan güvenli bir token yapısıdır.
Genellikle:
- Giriş yapmış kullanıcıyı temsil etmek
- API erişimlerini kontrol etmek
- Yetki kontrolü sağlamak
için kullanılır.

JWT; 3 parçadan oluşur:
`Header.Payload.Signature`
ve Base64 formatında kodlanır.

🛠️ JWT Kütüphanesi Nasıl Eklenir?
JWT işlemleri için aşağıdaki NuGet paketini projene ekle:
Kod:
Install-Package System.IdentityModel.Tokens.Jwt

Ayrıca bu kütüphaneler de gerekli:
Kod:
using System.IdentityModel.Tokens.Jwt;
using Microsoft.IdentityModel.Tokens;
using System.Security.Claims;
using System.Text;

🧪 JWT Token Oluşturma Fonksiyonu
C#:
public static string TokenUret(string kullaniciAdi, string gizliAnahtar)
{
    var tokenHandler = new JwtSecurityTokenHandler();
    var key = Encoding.ASCII.GetBytes(gizliAnahtar);

    var tokenDescriptor = new SecurityTokenDescriptor
    {
        Subject = new ClaimsIdentity(new[]
        {
            new Claim(ClaimTypes.Name, kullaniciAdi)
        }),
        Expires = DateTime.UtcNow.AddHours(1),
        SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
    };

    var token = tokenHandler.CreateToken(tokenDescriptor);
    return tokenHandler.WriteToken(token);
}

✅ JWT Token Doğrulama Fonksiyonu
C#:
public static ClaimsPrincipal TokeniDogrula(string token, string gizliAnahtar)
{
    var tokenHandler = new JwtSecurityTokenHandler();
    var key = Encoding.ASCII.GetBytes(gizliAnahtar);

    var validationParams = new TokenValidationParameters
    {
        ValidateIssuerSigningKey = true,
        IssuerSigningKey = new SymmetricSecurityKey(key),
        ValidateIssuer = false,
        ValidateAudience = false,
        ClockSkew = TimeSpan.Zero
    };

    try
    {
        var principal = tokenHandler.ValidateToken(token, validationParams, out SecurityToken validatedToken);
        return principal;
    }
    catch
    {
        return null;
    }
}

🧪 Kullanım Örneği
C#:
string key = "gizli-anahtar-32-karakterlik";
string token = TokenUret("kerim", key);

Console.WriteLine("Token: " + token);

var sonuc = TokeniDogrula(token, key);
if (sonuc != null)
    Console.WriteLine("✅ Token geçerli. Kullanıcı: " + sonuc.Identity.Name);
else
    Console.WriteLine("❌ Token geçersiz.");

🏁 Sonuç:
JWT, kimlik doğrulama işlemlerinde hem hızlı hem de güvenli bir çözümdür.
Kendi API sisteminde, kullanıcı oturumlarında ya da özel erişim kontrollerinde rahatlıkla kullanabilirsin.


📚 Daha Fazla Oku:
 
Geri
Üst