JWT spesifikasyonu sadece yükü ve nasıl gönderildiğini açıklar, ancak kimlik doğrulama protokolünü açık bırakır, bu da esnekliğe izin verir, ancak maalesef esneklik anti-desenlere ve yanlış tasarıma yol açabilir.
Kullanabileceğim veya uyarlayabildiğim JWT kimlik doğrulaması için bazı iyi düşünülmüş ve test edilmiş kurumsal bilmece arıyorum, ancak tam bir şey bulamadım.
Ne düşünüyordum:
- Yetkilendirme üstbilgisi karşılanmadığında veya JWT belirteci geçersiz olduğunda veya süresi dolduğunda HTTP 401 gönder
- kimlik doğrulaması yapmak için REST kanalını kullanın / oturum açın, JSON nesnesi olarak kullanıcı adı ve şifre gönderin
- jetonu canlı tutmak için REST kanalını kullanın / saklayın, her N (5) dakikada bir arayın, yeni JWT jetonu alın ve her aramadan sonra mevcut olanı değiştirin (jelin M (15) dakika sonra süresi dolar)
Ancak, beni rahatsız eden şey, o / tutucu kanalın gerekliliğidir. Öte yandan, kullanıcı uzakta olsa bile (kimlik doğrulamanın yapılmasını istemiyorsak karar henüz karşılanmadıysa) kimlik doğrulamasının süresinin dolmasını engellemeye zorlar ve elbette bunlar ekstra çağrılar ve protokol için ekstra komplikasyon. İlginç olan, sunucunun belirteci otomatik olarak uzatmasıdır. Oturum tabanlı ortamda zaman damgasını sıfırlayarak olur, ancak burada sunucunun her seferinde değil, yeni jeton göndermesi gerekir, ancak jetonun süresi R (10, dakika) içinde sona erer. Ancak yanıt gövdesine yerleştirmek JSON yanıt protokolünü değiştirmek anlamına gelir (bu nedenle çözüm invazivdir ve saydam değildir) ve istemcinin işleyebileceği fazladan bir HTTP üstbilgisi koymak iyi bir kalıp olmayabilir. BEN'
Açık puanlarıma cevap veren hazır kurumsal kalıplar var mı? Protokol taslağım güvenilir bir fikir mi? Sıfırdan tasarıma hazır bir şey kullanmayı tercih ederim.