2016-06-22 43 views
10

Hapijs'te jwt eklentisi ve stratejisini kullanıyorum. Giriş kullanıcısıyken jwt jetonu oluşturabilir ve 'jwt' stratejisiyle aynı belirteci kullanarak diğer API’yi doğrulayabilirim. Jetonu 'request.state.USER_SESSION' olarak USER_SESSION belirteci adı olarak bir çerez olarak ayarlıyorum. Ayrıca bu belirteci veritabanında kaydetmiyorum. Ama çıkış zamanındaki jwt simgesini nasıl yok edebilirim. Lütfen bir yol öner.Oturum kapatmada JWT Jetonları nasıl yok edilir?

cevap

14

JWT, tarayıcı üzerinde depolanır, böylece sona erme saatinden önce sunucu tarafında belirteci geçersiz kılmak için de gerekiyorsa, örneğin silinen/bloke/hesap askıya alındı ​​

istemci tarafında çerez silme belirteci kaldırın parola değiştirildi, izinler değiştirildi, kullanıcı yönetici tarafından oturum açtı, bir kara liste oluşturma veya döndürme jetonu oluşturma gibi bazı ortak teknikler için Invalidating JSON Web Tokens'a bir göz atın

+0

Cevabınıza katılıyorum. Çerezde jwt belirtecini 'response.state (' USER_SESSION ', {jwtToken}); USER_SESSION çerez adıdır. Hapisteki hapishaneden temizlemek için hangi komutu çalıştırmam gerektiğini önerebilir misin? – Garima

+0

Sunucu tarafındasınız ve bir çerezi silmek için tarayıcıları zorlayamazsınız. Ancak değeri boş olarak ayarlayabilir ve çerez değerini geçersiz kılmak için 'expires' alanını dahil edebilirsiniz. Http://stackoverflow.com/questions/5285940/correct-way-to-delete-cookies-server-side sayfasına bakın. Ayrıca cookie'leri müşteri tarafında javascript 'var delete_cookie = function (name) { document.cookie = isim + '=; expires = Per, 01 Ocak 1970 00:00:01 GMT;'; }; ' – pedrofb

+0

Çok teşekkürler! Cevabınızdan memnunum. – Garima

İlgili konular