I feel as though all the clicking and warning screens take away from the otherwise magical first impression those new to it would be getting… some sort of landing page notification for the warnings would be better.
Also, I think it would be a nice touch if you could just press the login button on a site like DSCVR then tap your key or biometric sensor or whatever, then the rest would be automated in javascript [or would it be WebAssembly?] with a click-to-abort button over a short progress/countdown indicator in case you need to login to a different internet identity or something.
Maybe even go straight to the static infinity symbol and have just below it: logging in to user# … click here to abort or log in as a different user (obviously worded a little better)
If implemented correctly it would take away from the perceived time to load on the static infinity symbol screen as it would be doing two things at once.
(Giving user a chance to abort to do something different, and also actively loading)
The first thing I would have the abort screen to do would be to pop up up the user id input / registration page and maybe have the warning to create a seed phrase or link more devices just below it.
Not sure about having to press the “log in as other user” within a time frame. I feel that could add some frustration in cases where you for example have a small screen or laggy device and doesn’t manage to press the button in time. But I agree the user experience could be improved by removing the extra landing page. How about displaying a drop-down menu when pressing “Login” which shows your currently linked users, and also shows a button for adding another account. This would require 2 clicks to log in but still very smooth.
But maybe there is some security reason for sending the users to the II page before logging in.
Both of those concerns would be a non-issue if implemented well.
… actually, the login process for DSCVR and future apps should probably be an asynchronous call that happens mostly in the background without a complete page refresh (where use case permits)
The true minimum would require tapping a login button and then handling WebAuthentication. WebAuthentication can’t be triggered without a user interaction, based on browser implementation.
The benefit of using Internet Identity instead of WebAuthn directly in the page is that it supports logging in with multiple devices, which otherwise DSCVR and every other app would have to implement themselves
Is it feasible for the Internet Identity login flow to be implemented as a standard javascript module that an app could include where the process could happen asynchronously on the same page?
It would be possible to stay in-page by using an iframe, but you would still need to interact with the Internet Identity UI in that case. A more seamless login flow for embedded iframes consisting of just a button could be added, but that might require some additional consideration around security
Trying to setup a development environment, would like to help if I can.
I get this on running ‘dfx start’ on the generated sample project.
thread 'replica-actor' panicked at 'called `Result::unwrap()` on an `Err` value: Cannot start the replica: Timeout', src/dfx/src/actors/replica.rs:297:17