Disclaimer: not a front-end dev.
I'm not sure what the issue is with a simple session token, to be honest. OWASP have guidelines on this that cover the bases pretty well, I think.
Store hashes, not tokens directly.
Expire them server side.
Don't accept user input (within reason). You generate and offer the tokens, you know what they look like, you can bounds check / sanity check appropriately.
Perform some additional checks as necessary (e.g. invalidate a session if remote IP changes).
If you have more security critical parts of the infrastructure, require re-authentication and more short-lived sessions for those. The obvious example would be how Amazon pretend you're "logged in" until you go to click My Orders, then you get auth gated.
I tend to think that people over-complicate this stuff a lot as a premature optimization for scaling.
A simple python script backed with some DB will do hundreds of hits a second to an auth service without really trying. If you need more than that, optimize. If you need more than 10k hits a second on a regular basis then you're probably at the point of hiring someone who knows this stuff.
Just my 2c.