Fastify.js Authorization Nasıl Uygulanır?
Fastify.js Authorization Nasıl Uygulanır?
Fastify.js, modern, hızlı ve düşük kaynak kullanımına sahip bir Node.js web framework'üdür. Uygulamalarda yetkilendirme süreci ise, kullanıcıların belirli kaynaklara erişim haklarının kontrolü için hayati önem taşır. Bu yazıda, Fastify.js authorization mekanizmasının nasıl hayata geçirileceğini teknik detaylarla birlikte ele alacağız. Ayrıca, JWT tabanlı örneklerle uygulamanızda güvenli bir yetkilendirme sistemi kurmayı öğreneceksiniz.
Fastify.js Authorization Nedir?
Authorization (yetkilendirme), bir kullanıcının sistem içerisindeki belirli kaynaklara erişimini kontrol etme işlemidir. Fastify.js üzerinde bu süreç genelde authentication (kimlik doğrulama) sonrası başlar ve genellikle JWT (JSON Web Token) gibi standartlara dayanır. Authorization işlevselliği, middleware tarzı yapılar veya plugin desteği ile özelleştirilebilir.
JWT ile Fastify.js Authorization Kurulumu
Gerekli Paketlerin Kurulumu
İlk olarak, JWT işlemleri için fastify-jwt paketini yüklememiz gerekir:
npm install fastify fastify-jwt
Fastify.js Authorization Middleware Oluşturma
Aşağıda, Fastify.js projesine JWT ile authorization yeteneği ekleyen örnek bir kod yer alıyor:
const fastify = require('fastify')();
fastify.register(require('fastify-jwt'), {
secret: 'gizliAnahtar'
});
// Yetkilendirme kontrolü için Hook
fastify.decorate("authenticate", async (request, reply) => {
try {
await request.jwtVerify();
} catch (err) {
reply.code(401).send({ error: "Yetkilendirme başarısız!" });
}
});
// Korunan bir endpoint
fastify.get('/admin', { preHandler: [fastify.authenticate] }, async (request, reply) => {
return { gizliVeri: "Sadece adminler için içerik" };
});
fastify.listen({ port: 3000 }, err => {
if (err) throw err;
console.log('Sunucu çalışıyor: http://localhost:3000');
});
Bu örnekte, authenticate adında bir dekoratör ile her istekte JWT doğrulanıyor. Başarısız olursa, kullanıcıya 401 hatası dönülüyor. /admin endpoint'i ise sadece geçerli JWT token'ı ile erişilebilir durumda.
Fastify.js Authorization İpuçları ve En İyi Uygulamalar
- Kullanıcı rollerine göre yetkilendirme yapmak için JWT payload'ına kullanıcı rolü ekleyin.
- Özelleştirilmiş authorization logic'leri için
preHandlerveyaonRequesthook'larını kullanın. - Hassas endpoint'lerde yalnızca token doğrulaması değil, rol ve izin kontrollerini de eklemeyi unutmayın.
Sonuç
Fastify.js authorization, güvenli Node.js uygulamaları geliştirmenin temel taşlarından biridir. JWT tabanlı örneklerle implementasyonu hem kolay hem de genişletilebilirdir. Daha güçlü kontrol gereksinimleriniz olduğunda ise hook alt yapısını kullanarak esnek bir sistem tasarlayabilirsiniz. Authorization mantığı sisteminizin güvenliğini artırırken, iyi planlandığında kullanımı son derece pratik hale gelir.

Yorum Gönder