Thanks for your article.
Why would you save the salt in database? It's not used anywhere after saving as argon2 saves it on its own.
I have also implemented refresh tokens to minimize impact of tokens steal and restrict access to only one device.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.