From a security perspective, this is a horrible idea, adding a completely untrusted intermediary. OAuth.io will technically have access to all of your user data, and any security flaws that they have will impact your service and user data.
Suppose that they have a customer who uses their service to install malware in people's accounts, and Google catches them. Google isn't going to just shut off one customer. They are going to revoke the client_id associated with OAuth.io, causing every customer to lose access. (A malware author could try this because they would hope that malicious requests are more easily lost inside the torrent of other stuff coming from OAuth.io.)
And it isn't just a customer who is intentionally bad. If a customer gets compromised by a malware author who uses that as a vector, well, same story.
You do not want your access to business-critical APIs to depend on a third party reseller who cannot guarantee their own continued access. Really.
You have to generate your own keys for each service, then store them with OAuth.io. This doesn't mean they can't access your users' data, just that there isn't one "master key" that could shut everyone down.
As a developer, I understand the pain when you have to deal with more than a handful of providers but this approach is a no-go IMHO. Would be a better idea to use something like HybridAuth and handle everything from your servers.
Relevant xkcd: http://xkcd.com/927/
Apology to OP if this comment appears to be offensive.
- Protocols provide standardization, and independance, often as recipe/instructions to follow. Protocols keeps things open, into nodes not hubs.
- Applications/platforms provide easy comsumption, with a user design but also dependancies. It is like a menu to order, as you choose what you want to eat but you don't have to care about how to do it (the recipe). They mutualize things as code librairies, CPU etc... but are hubs, not node and close the network in counterparty of user experience.
To see in depth the difference of design between a recipe and and a menu, more explanations in the Donald Norman book " The Design of Everyday Things"
Edit: To see the difference between a protocol and an application, why people are using Gmail instead of STMP? User experience vs implementation
Instead, someone should write a simple daemon I can execute http+json REST functions on to create and verify login cookies and transfer them back and forth to the user's browser using my webapp normally.
The daemon can be written in any language as long as it is not a JVM language.
I would write such a thing, but OAuth is somewhat confusing, and OAuth.io brings up a good point, a lot of the existing OAuth implementations are a bit flaky and if I just copy what they do/use them directly I risk inheriting that problem.
edit: Oh, the whole thing isn't a GIF. It just has a looping programmer gif and then puts some text around it. Maybe it will go on forever then :p
edit2: https://oauth.io/js/stubborn.js So definitely does go on forever :p
- http://hybridauth.sourceforge.net/ (PHP)
- https://github.com/intridea/omniauth (Ruby)
Anybody have any equivalents for other languages?
If it works the way it's supposed to I'll be using it for sure.