class Doorkeeper::OpenidConnect::Rails::Routes

Attributes

routes[RW]

Public Class Methods

install!() click to toggle source
# File lib/doorkeeper/openid_connect/rails/routes.rb, line 14
def self.install!
  ActionDispatch::Routing::Mapper.send :include, Doorkeeper::OpenidConnect::Rails::Routes::Helper
end
new(routes, &block) click to toggle source
# File lib/doorkeeper/openid_connect/rails/routes.rb, line 20
def initialize(routes, &block)
  @routes = routes
  @block = block
end

Public Instance Methods

generate_routes!(options) click to toggle source
# File lib/doorkeeper/openid_connect/rails/routes.rb, line 25
def generate_routes!(options)
  @mapping = Mapper.new.map(&@block)
  routes.scope options[:scope] || 'oauth', as: 'oauth' do
    map_route(:userinfo, :userinfo_routes)
    map_route(:discovery, :discovery_routes)
  end

  routes.scope as: 'oauth' do
    map_route(:discovery, :discovery_well_known_routes)
  end
end

Private Instance Methods

discovery_routes() click to toggle source
# File lib/doorkeeper/openid_connect/rails/routes.rb, line 54
def discovery_routes
  routes.scope path: 'discovery' do
    routes.get :keys
  end
end
discovery_well_known_routes() click to toggle source
# File lib/doorkeeper/openid_connect/rails/routes.rb, line 60
def discovery_well_known_routes
  routes.scope path: '.well-known' do
    routes.get :provider, path: 'openid-configuration'
    routes.get :webfinger
  end
end
map_route(name, method) click to toggle source
# File lib/doorkeeper/openid_connect/rails/routes.rb, line 39
def map_route(name, method)
  return if @mapping.skipped?(name)

  mapping = @mapping[name]

  routes.scope controller: mapping[:controllers], as: mapping[:as] do
    send method
  end
end
userinfo_routes() click to toggle source
# File lib/doorkeeper/openid_connect/rails/routes.rb, line 49
def userinfo_routes
  routes.get :show, path: 'userinfo', as: ''
  routes.post :show, path: 'userinfo', as: nil
end