OAuth and API Providers: Come on guys.
gist.io
gist.io
I had a similar problem, so I started my own open OAuth provider implementation complete with built in documentation https://github.com/schneems/opro. If you're using Rails, you can have a working OAuth provider in production in under 5 minutes. Of course adding the API endpoints and writing application specific docs is still up to the user, but the authentication flow and logic are at least standardized.
I agree with the main thrust of the argument though. OAuth providers do not make it as easy as they should. The point about the buttons is spot on. I've had some good success with the buttons provided here:
There are very few good provider libraries out there, making it harder to stick to standards. People who want to provide an API shouldn't have to re-invent the wheel every time.
I started writing opro before DK was out in the wild. There were some things I had in opro that weren't in DK so I decided to keep developing it.
Last time I checked here are some differences:
- Deals with CSRF protected resources automatically
- Works with your login system (like devise), not around it. No special casing or configuration is needed
- Comes with built in docs.
- Comes with built in test controller
You can play around with it here: http://opro-demo.herokuapp.com/.
P.S. - it also took like six hours of banging my head against a wall for unrelated oauth-related problems, but not DK's fault.
Enjoy.
Instead, I couldn't find much of anything.
So I delegated the task to someone else who I believe ended up implementing… Basic auth over TLS. ;)
version 22 of oauth2 spec
https://github.com/jaredhanson/oauthorize https://github.com/jaredhanson/oauth2orize
My hope is that now that the basecamp2 API supports it, their implementation will become the reference standard.
"Now when a user signs up websites try to make it as easiest as possible to increase user sign up and adoption. Then you provide an API that exposes this information and has data gaps because you wanted to avoid having the user type in one more field during sign up. The API should drive those requirements not the other way around."
Is the author saying that sites should focus on making life easy for API consumers at the expense of their users? If so, I couldn't disagree more.
I agree and that's actually been a problem with Twitter. They do have a unique ID for each user. The problem resides in the fact that users can change their Twitter handles. So you can track a user with their UID, but you also have to check that their handle doesn't change over time and figure out if their user page on your site is at website.com/223453245/ (not the prettiest and people can't link the Twitter handle to the user page on your site), or website.com/handle/ (which is more desirable but creates problems when the handle changes).
In the Rails world, Doorkeeper is a great example: https://github.com/applicake/doorkeeper/. However, I wish Doorkeeper were ORM agnostic as i can not use ActiveRecord nor Mongo. I would appreciate any hidden gems that others might have