Json Web Token
JWT(JSON Web Tokens), bir RFC7519 endüstri standartıdır. JWT, kullanıcının doğrulanması, web servis güvenliği, bilgi güvenliği gibi birçok konuda kullanılabilir. JWT oldukça popüler ve tercih edilen bir yöntemdir.
1- Client(İstemci), login sayfasında kullanıcı adı(veya mail) ve parola ile sunucu tarafına bir login isteği gönderir.
2- Sunucu gelen bilgiyi veritabanı sorgusu ile kontrol eder. Eğer geçersizse authentication error ‘401 Unauthorized’ döner, geçerliyse kullanıcı bilgileri ve önceden belirlenmiş bir gizli anahtar ile token oluşturur. Bu token client tarafına HTTP isteğinin ‘Header’ kısmında gönderir. (Ayrıca oluşturulan token veritabanında ilgili kullanıcı adına kaydedilebilir ama JWT’nin çalışmasını etkilemez.)
3- Client(İstemci) gelen token bilgisini local depolama(localStorage gibi) alanında tutar. Daha sonra yetki isteyen tüm isteklerde(get, post, put, delete…) Header bilgisi içerisinde bu token bilgisini gönderir. Gelen her istekte sunucu tokenı kontrol eder(verify) ve kullanıcının erişip erişemeyeceğini denetler. Erişim kabul edilirse normal şekilde veri akışı devam eder. Kabul etmezse client tarafına ‘403 Forbidden’ döner.
