Skip to content

Instantly share code, notes, and snippets.

@nbulaj
Last active November 8, 2018 12:23
Show Gist options
  • Save nbulaj/f554f2c3382c3831b964e11afa5479d9 to your computer and use it in GitHub Desktop.
Save nbulaj/f554f2c3382c3831b964e11afa5479d9 to your computer and use it in GitHub Desktop.
begin
require 'bundler/inline'
rescue LoadError => e
$stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler'
raise e
end
gemfile(true) do
source 'https://rubygems.org'
gem 'sqlite3'
# gem 'pg'
gem 'rails', '~> 5.2'
gem 'listen'
gem 'puma'
gem 'doorkeeper', '~> 5.0'
end
require 'rails'
require 'active_storage/engine'
require 'active_model/railtie'
require 'active_record/railtie'
require 'action_controller/railtie'
require 'action_mailer/railtie'
require 'action_view/railtie'
require 'action_controller/railtie'
require 'sprockets/railtie'
require 'doorkeeper'
require 'rack/handler/puma'
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Schema.define do
create_table :oauth_applications do |t|
t.string :name, null: false
t.string :uid, null: false
t.string :secret, null: false
t.text :redirect_uri, null: false
t.string :scopes, null: false, default: ''
t.boolean :confidential, null: false, default: true
t.timestamps null: false
end
add_index :oauth_applications, :uid, unique: true
create_table :oauth_access_grants do |t|
t.references :resource_owner, null: false
t.references :application, null: false
t.string :token, null: false
t.integer :expires_in, null: false
t.text :redirect_uri, null: false
t.datetime :created_at, null: false
t.datetime :revoked_at
t.string :scopes
end
add_index :oauth_access_grants, :token, unique: true
add_foreign_key(
:oauth_access_grants,
:oauth_applications,
column: :application_id
)
create_table :oauth_access_tokens do |t|
t.references :resource_owner, index: true
t.references :application
t.string :token, null: false
t.string :refresh_token
t.integer :expires_in
t.datetime :revoked_at
t.datetime :created_at, null: false
t.string :scopes
t.string :previous_refresh_token, null: false, default: ''
end
add_index :oauth_access_tokens, :token, unique: true
add_index :oauth_access_tokens, :refresh_token, unique: true
add_foreign_key(
:oauth_access_tokens,
:oauth_applications,
column: :application_id
)
end
class DoorkeeperTestApp < Rails::Application
config.load_defaults 5.1
secrets.secret_token = 'secret_token'
secrets.secret_key_base = 'secret_key_base'
config.eager_load = false
config.logger = Logger.new($stdout)
Rails.logger = config.logger
end
Rails.application.initialize!
Doorkeeper.configure do
orm :active_record
grant_flows %w[password authorization_code client_credentials]
skip_authorization do
true
end
end
Rails.application.routes.draw do
use_doorkeeper
end
Rack::Handler::Puma.run(DoorkeeperTestApp, Port: 3000)
# $ ruby doorkeeper_server.rb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment