Hi everyone!
The recent Internet Identity upgrade, while introducing a great OpenID integration, has a significant UX problem that negatively impacts integration.
The Problem: A Confusing Extra Step
Imagine you’ve successfully logged into a website using Google. You close your browser and come back later. You expect to be signed in automatically or, at worst, to just click “Log in with Google” again.
But with the new II, this is what happens:
-
First Login (as a new user): You see a nice, simple button to “Log in with Google.” You click it, do the Google login, and you’re in. Example - first time login
-
Next Login (as a returning user): The system has saved a “login state” in your browser. The next time you visit, it doesn’t show you the “Log in with Google” button. Instead, it shows a new screen asking you to select an “account.” Example 1 - google login selected , Example 2 - stateful login
-
The Confusion: As a user, you don’t know what this “account” is. It doesn’t show your email address or the Google logo. You just see a strange, generic option. This creates doubt and makes you wonder if you’re on the right page or if you’ve done something wrong. The experience is no longer seamless.
This happens because the system is designed with a “stateful” user journey in mind, where it assumes you want to manage multiple “accounts.” This might be a good feature for advanced ICP users, but it’s a major roadblock for the average person who just wants to log in with their familiar social media account.
The Solution: A Seamless, Stateless Login Flow
A better design would prioritize the user’s intent and remove the unnecessary “account” selection step. The login should be stateless, meaning it doesn’t rely on information saved in your browser from a previous visit to determine the next step.
Here is the proposed solution for a better user experience:
-
The Initial Screen: The first screen should always show the user a simple, clear list of all available login methods: “Log in with Google,” “Log in with a Passkey,” etc. This is the login method-first approach that other providers like Web3Auth use. Example
-
Smart Recognition (Optional): The system could subtly use local storage to remember the last login method used, but it shouldn’t force a user action based on it. For example, it could highlight “Log in with Google” as a recommended option or even show a button that says “Continue with Google” to speed things up.
-
No Forced “Account” Selection: The “account” selection screen should not appear in the primary login flow. Instead, it should be a separate, advanced feature for users who want to manage their identity, accessible from a settings page after they have successfully logged in. This keeps the core login experience clean and simple for everyone.
By making the login flow stateless and removing the forced account selection, you create an experience that feels natural and trustworthy. It aligns with what people expect from modern websites and removes a key barrier to adoption for users unfamiliar with the Internet Computer ecosystem.