JWT is better unless you have a specific need that I'm not aware of.
Session requires cookies and cookies only works in the browser
JWT: essentially, data in JSON format so you can work with it in different platform.
Also, JWT is more secured. You would be vulnerable to CSRF attacks if you're using cookies as a persistent authentication mechanism. A hacker can trick the victim into his website and click something buttons and his request would be sent as the victim because cookies are sent automatically with each request.
With JWT, you can store it in whatever your storage is, i.e: localStorage
for desktop. JWT is mannually send with each request from you. So the above scenario won't happen.
Can a hacker modify your JWT in localStorage
and add more claims, i.e: change the user type from 'user' to 'admin', nope!. It requires some private key which only the server has. You can try Auth0 and test it out in jwt.io.
Those are the key points, imo. There are other benefits but you can easily find out via google.