https://github.com/doorkeeper-gem/doorkeeper
Doorkeeper is an OAuth 2 provider for Ruby on Rails / Grape.
https://github.com/doorkeeper-gem/doorkeeper
Keywords
authentication authorization doorkeeper grape identity oauth oauth2 oauth2-provider oauth2-server ruby-on-rails
Keywords from Contributors
activerecord activejob mvc rubygems ruby-gem crash-reporting rack background-jobs sidekiq rspec
Last synced: about 18 hours ago
JSON representation
Repository metadata
Doorkeeper is an OAuth 2 provider for Ruby on Rails / Grape.
- Host: GitHub
- URL: https://github.com/doorkeeper-gem/doorkeeper
- Owner: doorkeeper-gem
- License: mit
- Created: 2011-11-18T13:02:01.000Z (over 14 years ago)
- Default Branch: main
- Last Pushed: 2026-02-12T07:43:13.000Z (19 days ago)
- Last Synced: 2026-02-13T22:49:54.613Z (18 days ago)
- Topics: authentication, authorization, doorkeeper, grape, identity, oauth, oauth2, oauth2-provider, oauth2-server, ruby-on-rails
- Language: Ruby
- Homepage: https://doorkeeper.gitbook.io/guides/
- Size: 20.5 MB
- Stars: 5,454
- Watchers: 102
- Forks: 1,076
- Open Issues: 56
- Releases: 70
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: MIT-LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
README.md
Doorkeeper — awesome OAuth 2 provider for your Rails / Grape app.
Doorkeeper is a gem (Rails engine) that makes it easy to introduce OAuth 2 provider
functionality to your Ruby on Rails or Grape application.
Supported features:
- The OAuth 2.0 Authorization Framework
- OAuth 2.0 Token Revocation
- OAuth 2.0 Token Introspection
- OAuth 2.0 Threat Model and Security Considerations
- OAuth 2.0 for Native Apps
- Proof Key for Code Exchange by OAuth Public Clients
Table of Contents
- Documentation
- Installation
- ORMs
- Extensions
- Example Applications
- Sponsors
- Development
- Contributing
- Contributors
- License
Documentation
This documentation is valid for main branch. Please check the documentation for the version of doorkeeper you are using in:
https://github.com/doorkeeper-gem/doorkeeper/releases.
Additionally, other resources can be found on:
- Guides with how-to get started and configuration documentation
- See the Wiki for articles on how to integrate with other solutions
- Screencast from railscasts.com: #353
OAuth with
Doorkeeper - See upgrade guides
- For general questions, please post on Stack Overflow
- See SECURITY.md for this project's security disclose
policy
Installation
Installation depends on the framework you're using. The first step is to add the following to your Gemfile:
gem 'doorkeeper'
And run bundle install. After this, check out the guide related to the framework you're using.
Ruby on Rails
Doorkeeper currently supports Ruby on Rails >= 5.0. See the guide here.
Grape
Guide for integration with Grape framework can be found here.
ORMs
Doorkeeper supports Active Record by default, but can be configured to work with the following ORMs:
| ORM | Support via |
|---|---|
| Active Record | by default |
| MongoDB | doorkeeper-gem/doorkeeper-mongodb |
| Sequel | nbulaj/doorkeeper-sequel |
| Couchbase | acaprojects/doorkeeper-couchbase |
| RethinkDB | aca-labs/doorkeeper-rethinkdb |
Extensions
Extensions that are not included by default and can be installed separately.
| Link | |
|---|---|
| OpenID Connect extension | doorkeeper-gem/doorkeeper-openid_connect |
| JWT Token support | doorkeeper-gem/doorkeeper-jwt |
| Assertion grant extension | doorkeeper-gem/doorkeeper-grants_assertion |
| I18n translations | doorkeeper-gem/doorkeeper-i18n |
| CIBA - Client Initiated Backchannel Authentication Flow extension | doorkeeper-ciba |
| Device Authorization Grant | doorkeeper-device_authorization_grant |
Example Applications
These applications show how Doorkeeper works and how to integrate with it. Start with the oAuth2 server and use the clients to connect with the server.
| Application | Link |
|---|---|
| OAuth2 Server with Doorkeeper | doorkeeper-gem/doorkeeper-provider-app |
| Sinatra Client connected to Provider App | doorkeeper-gem/doorkeeper-sinatra-client |
| Devise + Omniauth Client | doorkeeper-gem/doorkeeper-devise-client |
You may want to create a client application to
test the integration. Check out these client
examples
in our wiki or follow this tutorial
here.
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]
Codecademy supports open source as part of its mission to democratize tech. Come help us build the education the world deserves: https://codecademy.com/about/careers
If you prefer not to deal with the gory details of OAuth 2, need dedicated customer support & consulting, try the cloud-based SaaS version: https://oauth.io
Wealthsimple is a financial company on a mission to help everyone achieve financial freedom by providing products and advice that are accessible and affordable. Using smart technology, Wealthsimple takes financial services that are often confusing, opaque and expensive and makes them simple, transparent, and low-cost. See what Investing on Autopilot is all about: https://www.wealthsimple.com
Development
To run the local engine server:
bundle install
bundle exec rake doorkeeper:server
By default, it uses the latest Rails version with ActiveRecord. To run the
tests with a specific Rails version:
BUNDLE_GEMFILE=gemfiles/rails_6_0.gemfile bundle exec rake
You can also experiment with the changes using bin/console. It uses in-memory SQLite database and default
Doorkeeper config, but you can reestablish connection or reconfigure the gem if you need.
Contributing
Want to contribute and don't know where to start? Check out features we're
missing,
create example
apps,
integrate the gem with your app and let us know!
Also, check out our contributing guidelines page.
Contributors
Thanks to all our awesome
contributors!
License
MIT License. Created in Applicake. Maintained by the community.
Owner metadata
- Name: doorkeeper gem
- Login: doorkeeper-gem
- Email:
- Kind: organization
- Description: Doorkeeper is an OAuth 2 provider gem for Rails and Ruby frameworks
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/7275750?v=4
- Repositories: 10
- Last ynced at: 2024-03-25T19:56:21.955Z
- Profile URL: https://github.com/doorkeeper-gem
GitHub Events
Total
- Release event: 2
- Delete event: 4
- Pull request event: 43
- Fork event: 22
- Issues event: 15
- Watch event: 137
- Issue comment event: 105
- Push event: 29
- Pull request review event: 111
- Pull request review comment event: 85
- Create event: 5
Last Year
- Delete event: 2
- Pull request event: 15
- Fork event: 12
- Issues event: 7
- Watch event: 90
- Issue comment event: 55
- Push event: 16
- Pull request review comment event: 55
- Pull request review event: 65
- Create event: 1
Committers metadata
Last synced: 13 days ago
Total Commits: 1,887
Total Committers: 332
Avg Commits per committer: 5.684
Development Distribution Score (DDS): 0.797
Commits in past year: 20
Committers in past year: 9
Avg Commits per committer in past year: 2.222
Development Distribution Score (DDS) in past year: 0.75
| Name | Commits | |
|---|---|---|
| Felipe Elias Philipp | f****s@g****m | 383 |
| Nikita Bulai | b****a@g****m | 363 |
| Tute Costa | t****a@g****m | 213 |
| Piotr Jakubowski | p****j@g****m | 71 |
| jasl | j****7@h****m | 57 |
| Jon Moss | me@j****e | 46 |
| Peter M. Goldstein | p****n@g****m | 27 |
| Linh Dang | d****k@g****m | 26 |
| Jaime Iniesta | j****a@g****m | 18 |
| Simon Bonnard | s****d@g****m | 16 |
| dependabot[bot] | 4****] | 16 |
| Anthony Kirwan | a****n@g****m | 15 |
| Martin Lagrange | m****n@i****m | 15 |
| Peter Goldstein | p****n@y****m | 15 |
| Carol Nichols | c****s@g****m | 14 |
| Stas SUȘCOV | s****s@n****o | 13 |
| Ransom Briggs | r****s@e****m | 13 |
| Kenn Ejima | k****a@g****m | 13 |
| JeremyC-za | j****2@g****m | 13 |
| camero2734 | 4****4 | 11 |
| Kristine Robison | k****s@t****m | 10 |
| Rishabh Sairawat | r****1@g****m | 9 |
| dependabot-preview[bot] | 2****] | 9 |
| Justin Bull | j****n@w****m | 9 |
| Justin Bull | me@j****a | 7 |
| Emelia Smith | T****m | 7 |
| carvil | c****a@g****m | 7 |
| Edward Paget | e****d@c****e | 7 |
| Ryan Schlesinger | r****n@r****m | 7 |
| Matt Manning | m****g@c****m | 6 |
| and 302 more... | ||
Committer domains:
- gitlab.com: 2
- ifeelgoods.com: 2
- outreach.io: 2
- wealthsimple.com: 2
- gsa.gov: 2
- digitalocean.com: 2
- gmx.ch: 2
- nedap.com: 2
- freshbooks.com: 1
- alexkoppel.com: 1
- polleverywhere.com: 1
- qhrtech.com: 1
- phills.me.uk: 1
- grosser.it: 1
- dickey.xxx: 1
- askcharlie.com: 1
- procore.com: 1
- patientslikeme.com: 1
- aircall.io: 1
- zavan.me: 1
- posteo.net: 1
- creasty.com: 1
- galeckas.com: 1
- cookpad.com: 1
- q-centrix.com: 1
- tut.by: 1
- hisme.net: 1
- 80percent.io: 1
- sequoiacap.com: 1
- studyplus.jp: 1
- mpr.org: 1
- lyzo.me: 1
- jestem.tw: 1
- playonsports.com: 1
- lifx.co: 1
- teslamotors.com: 1
- wredny.net: 1
- mavenlink.com: 1
- tanda.co: 1
- harmanly.com: 1
- thibaud.gg: 1
- umich.edu: 1
- oliverguenther.de: 1
- dio.jp: 1
- system88.com: 1
- reidbeels.com: 1
- bulknews.net: 1
- crowdlab.com: 1
- calendly.com: 1
- ryanschlesinger.com: 1
- cassetteta.pe: 1
- justinbull.ca: 1
- tout.com: 1
- ezcater.com: 1
- net.utcluj.ro: 1
- youngcapital.nl: 1
- jora.com: 1
- commercelayer.io: 1
- steinbergcomputing.com: 1
- bryanrite.com: 1
- wallace.net.nz: 1
- idaemons.org: 1
- innovaptor.com: 1
- meraki.net: 1
- worsley.co.nz: 1
- digineo.de: 1
- kaeuferportal.de: 1
- x-ion.de: 1
- thoughtbot.com: 1
- centro.net: 1
- simkim.net: 1
- bitproductions.com: 1
- crowdway.com: 1
- chsc.dk: 1
- arcadia.com: 1
- riskmethods.net: 1
- brightbytes.net: 1
- sparksolutions.co: 1
- mindglob.com: 1
- softswiss.com: 1
- ferrandis.cool: 1
- adgear.com: 1
- thape.com.cn: 1
- mbf.nifty.com: 1
- 4angle.com: 1
- elskwid.net: 1
- flatstack.com: 1
- dependabot.com: 1
- syngenta.com: 1
- zacwilliams.com: 1
- joshuakgoldberg.com: 1
- jhass.eu: 1
- leadjig.com: 1
- jevon.org: 1
- jeffreyc.com: 1
- grudev.com: 1
- yandex.ru: 1
- 42fu.com: 1
- shopify.com: 1
- platterz.ca: 1
- oysterhr.com: 1
- exop-group.com: 1
- pentesterlab.com: 1
- glooko.com: 1
- koriroys.com: 1
- kerrizor.com: 1
- chalmers.it: 1
- introhive.com: 1
- advancedcontrol.com.au: 1
- me.com: 1
- civisanalytics.com: 1
- mcgeary.org: 1
- everfi.com: 1
- square-enix.com: 1
- propertybase.com: 1
- grupainteger.pl: 1
- codecons.com: 1
- contentful.com: 1
- viikii.com: 1
- webtrends.com: 1
- embellishedvisions.com: 1
- zilverline.com: 1
- cloud.upwork.com: 1
- ihispano.com: 1
- prodivnet.com: 1
- jonathanmoss.me: 1
- vinc.cc: 1
- gmx.com: 1
- moodys.com: 1
- stefansundin.com: 1
- cox.net: 1
- raphaelcosta.net: 1
- sourcebits.com: 1
- debian.org: 1
- productplan.com: 1
- doorkeeper.jp: 1
- clixifix.co.uk: 1
- welltravel.com: 1
- tylerhunt.com: 1
- a07.com.au: 1
- compton.nu: 1
- thomas-romera.com: 1
- tazsingh.com: 1
- stuartolivera.com: 1
Issue and Pull Request metadata
Last synced: 15 days ago
Total issues: 127
Total pull requests: 169
Average time to close issues: 4 months
Average time to close pull requests: about 1 month
Total issue authors: 101
Total pull request authors: 59
Average comments per issue: 4.22
Average comments per pull request: 2.07
Merged pull request: 118
Bot issues: 1
Bot pull requests: 21
Past year issues: 12
Past year pull requests: 17
Past year average time to close issues: N/A
Past year average time to close pull requests: 8 days
Past year issue authors: 9
Past year pull request authors: 8
Past year average comments per issue: 1.25
Past year average comments per pull request: 2.06
Past year merged pull request: 9
Past year bot issues: 0
Past year bot pull requests: 3
Top Issue Authors
- ThisIsMissEm (10)
- ransombriggs (7)
- kmayer (3)
- nov (2)
- mroach (2)
- PhilippeChab (2)
- stevetsanders (2)
- hickford (2)
- brent-cybrid (2)
- j-seixas (2)
- verenion (2)
- matthewheath (2)
- zoeoverthere (1)
- dependabot[bot] (1)
- NeilSlater-Clixifix (1)
Top Pull Request Authors
- nbulaj (28)
- dependabot[bot] (21)
- ThisIsMissEm (15)
- ransombriggs (9)
- naitoh (6)
- stanhu (6)
- JeremyC-za (5)
- kmayer (4)
- lurz (4)
- sato11 (4)
- ydah (3)
- hannahyeates (2)
- andrew (2)
- filipesperandio (2)
- mattmanning (2)
Top Issue Labels
- wontfix (16)
- pinned (7)
- enhancement (6)
- feature request (5)
- RFC (5)
- bug? (5)
- question/discussion (4)
- bug (4)
- help wanted (2)
- security (2)
- spec (1)
- docs (1)
- refactor (1)
- dependencies (1)
- ruby (1)
Top Pull Request Labels
- dependencies (21)
- ruby (16)
- wontfix (6)
- github_actions (5)
- WIP (2)
- pinned (2)
- refactor (1)
- enhancement (1)
Package metadata
- Total packages: 13
-
Total downloads:
- rubygems: 203,926,394 total
- Total docker downloads: 1,163,654,018
- Total dependent packages: 41 (may contain duplicates)
- Total dependent repositories: 5,404 (may contain duplicates)
- Total versions: 348
- Total maintainers: 5
- Total advisories: 14
gem.coop: doorkeeper
Doorkeeper is an OAuth 2 provider for Rails and Grape.
- Homepage: https://github.com/doorkeeper-gem/doorkeeper
- Documentation: http://www.rubydoc.info/gems/doorkeeper/
- Licenses: MIT
- Latest release: 5.8.2 (published 11 months ago)
- Last Synced: 2026-02-18T06:15:21.735Z (14 days ago)
- Versions: 123
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 101,939,324 Total
- Docker Downloads: 581,827,009
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.083%
- Downloads: 0.248%
- Maintainers (5)
-
Funding:
- https://opencollective.com/doorkeeper-gem
-
Advisories:
- Doorkeeper subject to Incorrect Permission Assignment
- Doorkeeper vulnerable to Cross-site Request Forgery
- Moderate severity vulnerability that affects doorkeeper
- Doorkeeper is vulnerable to stored XSS and code execution
- Doorkeeper Improper Authentication vulnerability
- Doorkeeper is vulnerable to replay attacks
- Exposure of Sensitive Information to an Unauthorized Actor in Doorkeeper
rubygems.org: doorkeeper
Doorkeeper is an OAuth 2 provider for Rails and Grape.
- Homepage: https://github.com/doorkeeper-gem/doorkeeper
- Documentation: http://www.rubydoc.info/gems/doorkeeper/
- Licenses: MIT
- Latest release: 5.8.2 (published 11 months ago)
- Last Synced: 2026-02-19T01:11:40.078Z (13 days ago)
- Versions: 123
- Dependent Packages: 41
- Dependent Repositories: 5,403
- Downloads: 101,987,070 Total
- Docker Downloads: 581,827,009
-
Rankings:
- Docker downloads count: 0.188%
- Stargazers count: 0.238%
- Downloads: 0.323%
- Average: 0.375%
- Dependent repos count: 0.432%
- Forks count: 0.434%
- Dependent packages count: 0.632%
- Maintainers (5)
-
Funding:
- https://opencollective.com/doorkeeper-gem
-
Advisories:
- Doorkeeper Improper Authentication vulnerability
- Exposure of Sensitive Information to an Unauthorized Actor in Doorkeeper
- Doorkeeper vulnerable to Cross-site Request Forgery
- Moderate severity vulnerability that affects doorkeeper
- Doorkeeper subject to Incorrect Permission Assignment
- Doorkeeper is vulnerable to stored XSS and code execution
- Doorkeeper is vulnerable to replay attacks
proxy.golang.org: github.com/doorkeeper-gem/doorkeeper
- Homepage:
- Documentation: https://pkg.go.dev/github.com/doorkeeper-gem/doorkeeper#section-documentation
- Licenses: mit
- Latest release: v5.8.2+incompatible (published 11 months ago)
- Last Synced: 2026-02-04T00:10:00.431Z (28 days ago)
- Versions: 92
- Dependent Packages: 0
- Dependent Repositories: 1
-
Rankings:
- Forks count: 0.823%
- Stargazers count: 0.93%
- Average: 3.75%
- Dependent repos count: 4.794%
- Dependent packages count: 8.453%
ubuntu-23.10: ruby-doorkeeper
- Homepage: https://github.com/doorkeeper-gem/doorkeeper
- Licenses:
- Latest release: 5.6.6-2 (published 18 days ago)
- Last Synced: 2026-02-13T18:18:15.420Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-10: ruby-doorkeeper
- Homepage: https://github.com/doorkeeper-gem/doorkeeper
- Documentation: https://packages.debian.org/buster/ruby-doorkeeper
- Licenses:
- Latest release: 4.4.2-1 (published 20 days ago)
- Last Synced: 2026-02-13T04:20:46.081Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-23.04: ruby-doorkeeper
- Homepage: https://github.com/doorkeeper-gem/doorkeeper
- Licenses:
- Latest release: 5.5.0-2 (published 20 days ago)
- Last Synced: 2026-02-11T06:38:17.502Z (20 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-11: ruby-doorkeeper
- Homepage: https://github.com/doorkeeper-gem/doorkeeper
- Documentation: https://packages.debian.org/bullseye/ruby-doorkeeper
- Licenses:
- Latest release: 5.3.0-2 (published 21 days ago)
- Last Synced: 2026-02-13T08:19:50.023Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-20.04: ruby-doorkeeper
- Homepage: https://github.com/doorkeeper-gem/doorkeeper
- Licenses: mit
- Latest release: 5.0.2-2 (published 18 days ago)
- Last Synced: 2026-02-13T07:12:39.904Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-22.04: ruby-doorkeeper
- Homepage: https://github.com/doorkeeper-gem/doorkeeper
- Licenses:
- Latest release: 5.5.0-2 (published 18 days ago)
- Last Synced: 2026-02-13T13:15:52.967Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-12: ruby-doorkeeper
- Homepage: https://github.com/doorkeeper-gem/doorkeeper
- Documentation: https://packages.debian.org/bookworm/ruby-doorkeeper
- Licenses:
- Latest release: 5.5.0-2+deb12u1 (published 19 days ago)
- Last Synced: 2026-02-12T23:28:23.358Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-13: ruby-doorkeeper
- Homepage: https://github.com/doorkeeper-gem/doorkeeper
- Documentation: https://packages.debian.org/trixie/ruby-doorkeeper
- Licenses:
- Latest release: 5.6.6-2 (published 19 days ago)
- Last Synced: 2026-02-13T13:14:53.314Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
Dependencies
- dacbd/create-issue-action main composite
- lots0logs/gh-action-get-changed-files 2.1.4 composite
- actions/checkout v3 composite
- ruby/setup-ruby v1 composite
- ruby 2.6.5-alpine build
- activerecord-jdbcsqlite3-adapter >= 0
- bcrypt ~> 3.1
- rails >= 6.0, < 7.1
- rspec-core >= 0
- rspec-expectations >= 0
- rspec-mocks >= 0
- rspec-rails ~> 6.0
- rspec-support >= 0
- rubocop ~> 1.4
- rubocop-performance >= 0
- rubocop-rails >= 0
- rubocop-rspec >= 0
- sprockets-rails >= 0
- timecop >= 0
- appraisal >= 0 development
- capybara >= 0 development
- coveralls_reborn >= 0 development
- database_cleaner ~> 2.0 development
- factory_bot ~> 6.0 development
- generator_spec ~> 0.9.3 development
- grape >= 0 development
- rake >= 11.3.0 development
- rspec-rails >= 0 development
- timecop >= 0 development
- railties >= 5
Score: 35.45576812037877