This means a lot of Login and/or Register going on..
Register takes a million data points from the user (n=infinity)
and Login only takes username and password (n=2)
As I'm typing my credentials on the iPhone keyboard in different services, I find myself struggling with 2 repeating problems in all services:
Problem 1 : I try to Register, but I'm already registered.
The Elegant Solution : The service should find out the user exists as early as possible, and route the user to the login lane.
|Existing user tries to register|
The Elegant Solution : The service should find out the user doesn't exist as early as possible, and route the user to the Register lane.
|Non-existing user tries to login|
I would also recommend explaining the situation to the user and asking them whether they want to be routed.
Note that these solutions expose some security threats that need to be prevented.