For question number 3, you have 2 scenarios:
same device, same app installation: just compare with the saved user in the local database from previous users.
same device, different app installation: you can collect the device metadata, construct keys over it, and use as a comparison;