Looks a lot like desktop usage.
I have created https://github.com/qrauth-io/qrauth open source.
I can help with integration for Passwordless login if you want. Also bonus social login by default
Animated Cryptographic QR Codes where each frame is independently signed (ECDSA-P256) and rotates every 500ms. A screenshot captures one expired frame. A video can't predict the next frame without the signing key.
Demo: https://qrauth.io
Interesting approach. We're working on a similar problem from a different angle — cryptographic signing (ECDSA-P256) per QR code rather than server-side invalidation, plus geospatial binding and a transparency log. Open source: https://github.com/qrauth-io/qrauth