If these challenges prove too great, we can consider a custom implementation involving a seed phrase where the signing key is saved in the browser's storage like localstorage or IndexedDB. This would allow shared identities with the app, and improved UX after sign in. But it means the user will need to understand how the seed phrase works, and will need to manually save it and sign in on every device.