OAuthocalypse is on the horizon
Since the beginning, Twitter has supported Basic Auth as a form of authentication. On June 30th, however, they plan to pull the plug. If you’re unfamiliar with authentication processes, Basic Auth involves attaching the user’s username and password to a request header. It’s as simple as can be for developers, but not exactly safe for users. Although many developers wouldn’t even consider tampering with a user’s account, the dark side still lingers.
Because of this, OAuth was introduced to keep users’ passwords out of 3rd party hands. Instead, an access token is given to the 3rd party for each user. With it, they can call any of the methods in the API that Basic Auth could, but users can feel safe knowing only Twitter holds their passwords. Though this sounds all well and good, it certainly has its downsides.
For one, the login process isn’t as smooth—for both the user and the developer. This diagram compares the user experience of Basic Auth versus OAuth. As you can see, OAuth is a bit long-winded. It’s even worse for the 3rd party. They bear the burden of encoding and signature parsing. From a user experience standpoint, the worst part of the OAuth process lies in the last three steps. Twitter is not a bank. Requiring the user to copy, paste, and authenticate a pin adds three unnecessary steps.
Prior to DestroyTwitter, I developed DestroyFlickr, which authenticates with Flickr to access its API. This process involves entering a username in the app, which opens Flickr.com, asks you to login if you haven’t already, then verifies that you’d like to authorize this app. Finally, return to the app and you’re good to go.
Now, Twitter does have an alternative authentication method—xAuth. Imagine if Basic Auth and OAuth had a baby. The process is the same for the user as Basic Auth, but the 3rd party is given an access token, just like with OAuth. There’s one problem—it still divulges the user’s password to the 3rd party, just like Basic Auth. Even though Twitter says, “Storage of Twitter usernames and passwords is forbidden,” this single sentence isn’t going to stop a malicious 3rd party from exploiting users.
Let’s look at one last issue that arises with OAuth. For Twitter app developers, how do you authenticate with services like Twitpic?—with the user’s username and password. If the 3rd party can’t store users’ credentials, it’s impossible for them to authenticate with the service. Unless Twitter releases this proposed echo method with enough time to implement, you will either see a massive drop in Twitter service usage or Twitter app developers will ignore the no-storage rule and put us back at square one.
Keep in mind, a lot can change between now and June. Let’s hope Twitter improves the user experience by removing the need for a pin. Let’s look forward to a way to communicate with services without sharing users’ credentials. With enough of a heads-up, June 30th will just be another day. If, however, Twitter makes a change in the eleventh hour, we might see a number of frantic developers.
[update] – Twitter updates OAuth docs to prepare developers for June.












