similar to SIWE account creation logic. differences:
- signedIdentityKeysBlob must be present
- we use the UserIdentifier type to get the username (and eth address if present)
- we don't send a reserved username request since this user has already registered with identity
not deduping because we eventually want to deprecate the siwe account creation function anyway
Depends on D10491