I understand that TweetDeck can help a user to access Twitter and Facebook on her behalf.
In OAuth2, that means TweetDeck is the 3rd Party Application, Twitter and Facebook are the Resource Server while the user is the Resource Owner.
My question is NOT about TweetDeck accessing some Resource Server on behalf of a Resource Owner.
My question is how does TweetDeck handle authentication for its own desktop app/mobile app/webapp because in all 3 types, a user still needs to login using her own TweetDeck username/password?
For webapp, it is straightforward enough. TweetDeck could be using good ol’ server sessions and browser cookies to maintain application/authentication state and a simple login form over HTTPS.
My main question is What about desktop app/mobile app?
Does TweetDeck also use OAuth2 for its own authentication? if not, what does it use?
If so, is it Resource Owner Password Credentials Grant? if not, then which type of OAuth grant?
If so, how do they avoid being compromised by brute force attacks? since it is stated in the docs, the endpoint for this needs to protect against brute force attacks.
It uses HTTP Basic Authentication with a custom session implementation. It’s not an implementation of OAuth2’s Resource Owner’s Password Credentials Grant, because I didn’t specify some of the required parameters (e.g.
grant_type) in my test run below and the server didn’t complain.Here’s a local run I did using cUrl:
BTW, I got that login URL from a Chrome Developer Tools session:
UPDATE
I asked TweetDeck themselves, but at the time of writing they haven’t replied yet.