TsgcHTTP_JWT_Server bileşeni.
TsgcHTTP_JWT_Server bileşeni, WebSocket protokolü kullanılırken WebSocket Handshake içinde veya HTTP protokolü kullanılırken HTTP Header olarak alınan JWT token'larını decode etmenizi ve doğrulamanızı sağlar.
Bileşenin JWTOptions özelliğinde aşağıdaki özellikleri yapılandırabilirsiniz:
İmza bir Public Key (RS ve ES algoritmaları) kullanılarak doğrulanıyorsa, değeri Algoritmanın PublicKey özelliğine ayarlayın.
İmza bir Secret kullanılarak doğrulanırsa (HS algoritmaları), değeri Algorithm'in Secret özelliğine ayarlayın.
JWT token'larını doğrulamak için, sadece WebSocket/HTTP Sunucusunun Authentication.JWT.JWT özelliğine bir TsgcHTTP_JWT_Server örneği ekleyin.
oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Port := 80;
oJWT := TsgcHTTP_JWT_Server.Create(nil);
oJWT.JWTOptions.Algorithms.RS.PublicKey.Text := 'public key here';
oServer.Authorization.Enabled := True;
oServer.Authorization.JWT.JWT := oJWT;
oServer.Active := True;
İmza doğrulandıktan sonra sunucu, Payload'ın kayıtlı claim'lerini doğrular. exp, nbf ve iat claim'leri denetlenir, önceki sürümler yalnızca imzayı doğruluyordu, bu nedenle süresi dolmuş bir token kabul ediliyordu. Payload'da bulunmayan bir claim, veren tarafından öne sürülmemiştir ve doğrulanmaz.
Denetimler JWTOptions.Validations özelliğinde yapılandırılır:
Expiration: exp claim'i geçmişte olduğunda token'ı reddeder. Varsayılan olarak etkindir, süre denetimini devre dışı bırakmak için Validations.Expiration := False olarak ayarlayın.
NotBefore: nbf claim'i gelecekte olduğunda token'ı reddeder. Varsayılan olarak etkindir.
Issued: iat claim'i gelecekte olduğunda token'ı reddeder. Varsayılan olarak etkindir.
Leeway: exp, nbf ve iat claim'leri geçerli saatle karşılaştırılırken izin verilen saat sapması saniyesi. Varsayılan 60 saniyedir, claim'leri hiç pay bırakmadan karşılaştırmak için sıfır olarak ayarlayın.