2

I have a scenario where the user must authorize with two separate third-party apps (via oauth) in order to proceed. The question arises between successful authorization from the first app, and before attempting to gain authorization from the second app.

I see three options:

  1. When the first oauth flow is complete, display a button/link to begin the second oauth flow.
  2. When the first oauth flow is complete, display a button/link to begin the second oauth flow, paired with a message along the lines of you should be redirected, click here blah blah and some javascript to kick off the automatic redirection.
  3. When the first oauth flow is complete, display a blank page paired with javascript to kick off automatic redirection.

I see some tradeoffs here:

  1. Requires one more click, but is explicit about what is happening.
  2. Usually results in one less click, but a flash of content (redirection message and the button/link).
  3. One less click, but if it breaks then the user is left with a blank screen. (App requires javascript anyways, and window.location.href='foo' is pretty safe, but you never know what the browsers of tomorrow will do)

I'm leaning towards #3 being the cleanest, depending on web standards, etc. However, I'm concerned that it may cause accessibility issues that I haven't thought about.

Additional consideration:

The authorization flow for each external app requires user interaction, on the level of signing into their account for that app, reading a list of permissions, and clicking a button.

No user interaction is inherently required in between, but it may be confusing to be looking at Do you want to allow app X to perform action Y on your StackExchange account?, click OK, then immediately be faced with Do you want to allow app X to to perform action Z on your Discus account?.

1

You may use a blank page with some indication that background processing is performed. For example use throbber, a spinning circle that indicates processing.

Do not use any text or any other elements in the page, because users may not have time to process them, and this will create to them a sense of uncertainty that they missed something important.

0

If the complete authorization chain is super fast from start to finish, then you might be ok with a blank page; however, since you are relying on two third party sites in which you have no control over, you cannot completely guarantee that it will only take a second or two. For this reason it would be safer to show some sort of "redirecting" indicator as you mentioned in option number 2.

If it always does take as fast as you hope, then showing a brief flash of a redirection message isn't all that bad, when compared to when it is taking longer than expected and the users do not know what is going on.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy