OpenID & OAuth Latency - Painful User Experience

Draft 1 OAuth 1.0 spec was announced yesterday. By my count, it requires no less than 6 HTTP request/response round trips assuming the user is already logged in to the service provider.

If the user is NOT logged into the service provider and has to log in before approving or denying the consumer’s request, the number of round trips is increased by a minimum of two for a site using traditional user name/password authentication or even more if the site uses OpenID. Heaven forbid the user isn’t logged into her OpenID provider. In this case the number of request/response round trips skyrockets. Imagine the visible user experience in this case:

  1. Initiate protected resource request from service provider
  2. Redirected to service provider's site to approve request....but wait user is not logged into service provider's site...
  3. Prompt for OpenID
  4. Redirect to OpenID site to verify OpenID...but wait user is not logged into the OpenID provider's site
  5. Prompt for OpenID provider's login credentials
  6. Prompt to approve service provider's login request at the OpenID provider site
  7. Prompt to approve the consumer's protected resource request at the service provider's site
  8. Wait as the service provider redirects back to the consumer with the approved request token....
    ...which then redirects back to service provider to get the access token...
    ...which then redirects back to the consumer...
    ...so that the consumer can redirect back to the service provider and access the intended resource.

This may work great in the bay area where everyone is 10 ms ping time away from everyone else, but try even just a simple OpenID login to a USA-based site when you’re on the Asia-side of the Pacific. Even when you’re already logged in to your OpenID provider, there’s significantly more waiting than the traditional username/password authentication session.

  Updated
Larry Salibra

About

I'm an entrepreneur and Engineering Partner at Blockstack where I'm building a new internet for decentralized apps. More about me.