Doorkeeper is an OAuth 2.0 provider built in Ruby. It integrates with Ruby on Rails and Grape frameworks.
The installation process depends on the framework you're using. The first step is to add doorkeeper to your Gemfile:
{% tabs %} {% tab title="# Gemfile" %}
gem 'doorkeeper'{% endtab %} {% endtabs %}
And run bundle install. After this, make sure to follow the guide related to the framework you're using below.
Doorkeeper follows Rails maintenance policy and supports only supported versions of the framework. Currently we support Ruby on Rails >= 5.0. See the guide here.
Guide for integration with Grape framework can be found here.
Doorkeeper supports ActiveRecord 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 |
Doorkeeper does not automatically remove expired or revoked tokens and grants. The oauth_access_tokens and oauth_access_grants tables grow indefinitely and can reach millions of rows if left unmanaged.
Prune them periodically with the bundled rake task:
bundle exec rake doorkeeper:db:cleanupThis deletes expired and revoked access tokens and grants. See the Rake tasks guide for details.
Extensions that are not included by default and can be installed separately.
Please note that some of the extensions are not maintained by the Doorkeeper team, so please check the repository for the latest updates and issues.
| 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) | doorkeeper-gem/doorkeeper-ciba |
| Device Authorization Grant | doorkeeper-gem/doorkeeper-device_authorization_grant |
These applications show how Doorkeeper works and how to integrate with it. Start with the OAuth 2.0 server and use the clients to connect with the server.
| Application | Link |
|---|---|
| OAuth 2.0 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 |
See list of tutorials in order to learn how to use the gem or integrate it with other solutions / gems.