The bit about finding a unique ID for the user is the whole pain point though. The only way to do that really is for the user to create an account on some service that I host. And if I have that, I probably have my own hosted data storage anyway.
But it’s dead simple if e.g. using something like Clerk.dev for your auth.