| > to revoke a JWT you have to blacklist it in the database so it still requires a database call to check if it's valid. The blacklist is smaller than storing every token and not needed if you use a short expiration and refresh often. > JWT are to prevent database calls but a regular request will still hit the database anyway. It's one less query per request plus not all requests need the database immediately. > JWT are very large payloads passed around in every request taking up more bandwidth. They are 100~ bytes instead of 10~, not "very large". > If user is banned or becomes restricted then it still requires database calls to check the state of user. This is the blacklist you mentioned as the first reason. > JWT spends CPU cycles verifying signature on every request Pretty sure this is neglible. Similar to SSL requests. > JWTs just aren't good for authentication which is how a lot of web developers try to use them as. Use a session ID instead. Opinion. I weighed the pros and cons and JWTs are still worth it for my authentication use cases. |