If your users don't understand why they're seeing the Twitter login
screen, then your application needs to do a better job of explaining
it.
> Amen to that.
>
> When one does customer support for long enough, you quickly realize
> that:
>
> a) People do not read instructions, and
>
> b) Many people are not as computer literate as you'd wish them to be.
>
> If you send people all over the place, many go, "WTF," and abandon the
> process out of fear or ignorance.
>
> With Basic Auth the process is very simple. Enter the username and
> password on your site, and click the save button. It shouldn't be any
> more involved or complicated with OAuth.
The problem with Basic Auth is that it doesn't know the difference
between Authentication and Authorization. It's an oversimplification.
The only way to do something *for* someone is to *be* that someone as
far as the target system is concerned. A system that is as smart as it
needs to be is going to be a little more complicated and involved than
that.
You can still do a little animated "authorize this" screen just like
Facebook with OAuth. Just set up a gateway on your server and Ajax the
whole work flow through the gateway. There's no need to complicate the
UX. The complications can go in the back end so that you can get your
authenticalization in one click.
Chris Babcock
> If I understand you correctly, you're saying one should login for the
> user in the OAuth process? Wouldn't that involve scraping the Twitter
> web interface? Or am I outside the ballpark with my understanding?
I'm saying that, for those who are more worried about losing users with
an OAuth login than they are worried about losing them by asking for
their Twitter password, it is still possible and desirable to use OAuth.
There is a complexity cost, but you can pay it in the back end instead
of passing it on to the user interface. The benefits are that the
application isn't subject to the verify credentials DoS attack and the
app will already be using OAuth if/when basic is discontinued.
With OAuth, you authenticate the user, but you never use the verify
credentials service to do so. Even if you set up a gateway so that you
can use Ajax to log the user into Twitter and verify your own token, you
don't verify credentials so much as use them.
The API documentation is saying that the OAuth calls aren't rate
limited. They don't need to be for security, but they may need to be
limited by IP address for performance. The main point is that a user
outside of your service can't trip the limit in order to run a DoS
attack on your users.
Chris Babcock