Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Doorkeeper is an OAuth 2 provider for Ruby on Rails or Grape applications. It's built on top of Rails engines. The gem is in active development. So far it supports all protocol flows, but we will still improve the functionality of the gem.
See it in action
We've built a simple provider demo using Devise. Check it out here.
Screencast @ railscasts.com
For more example applications, see this page in the wiki.
All pull requests are welcome and we love them!!! If you want to contribute, please read the guide
Doorkeeper is in constant development and things change fast! Check out the upgrade guide for more information.
- Using with
- Using ActionController::Metal with doorkeeper
- Interacting as an OAuth client with Doorkeeper
- Passing parameters from a devise client to doorkeeper (like locale)
- Auto Sign Up after registration
- Using scopes
- Using with Grape
- Grape + Doorkeeper + Swagger
- Devise Doorkeeper
- Doorkeeper and ActionCable
- Using PKCE flow
- Using OmniAuth to authenticate for Doorkeeper
- Create a OmniAuth strategy for your provider
- Associate users to OAuth applications (ownership)
- CORS - Cross Origin Resource Sharing
- Rate limit with Redis
- A Sane Oauth Federation Strategy With Doorkeeper in Ruby
- doorkeeper-jwt: Doorkeeper JWT support
- doorkeeper-i18n: Translation files for doorkeeper
- doorkeeper-grants_assertion: Assertion grant extension for Doorkeeper
- doorkeeper_scopes_per_flow: Limit scopes available per flow/grant_type and specify a default one for each flow
- doorkeeper-openid_connect: Implements an OpenID Connect authentication provider on top of Doorkeeper
NOTE: Something may be changed in new versions of the gem, so first read the main documentation or NEWS.md for additional info.
- Enable refresh token credentials
- Using scopes
- Skipping Application Authorization
- Changing how clients are authenticated
- Authenticating using Clearance/DIY
- Enabling Basic authorization for access tokens
- Using PostgreSQL UUIDs as primary keys with Doorkeeper
You can also find all the wiki pages here.
Thanks to all that contributed to the gem! Check out the awesome list of contributors here!