Class: Rack::CouchdbOAuth2::RequireBearerToken

Inherits:
OAuth2::Server::Resource
  • Object
show all
Defined in:
lib/couchdb_oauth2/resource/require_bearer_token.rb

Defined Under Namespace

Classes: Request

Constant Summary collapse

ACCESS_TOKEN =
"rack.oauth2.couchdb.access_token"

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ RequireBearerToken

Returns a new instance of RequireBearerToken.



5
6
7
8
9
10
11
12
13
14
# File 'lib/couchdb_oauth2/resource/require_bearer_token.rb', line 5

def initialize(app)
  super(app, "Rack CouchdbOAuth2 RequireBearerToken") do |req|
    token = req.couchdb_access_token
    if token.nil? || token.expired?
      req.invalid_token!
    else
      token
    end
  end
end

Instance Method Details

#call(env) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/couchdb_oauth2/resource/require_bearer_token.rb', line 16

def call(env)
  self.request = Request.new(env).setup!
  self.request.invalid_token! unless self.request.oauth2?
  env[ACCESS_TOKEN] = self.request.couchdb_access_token if self.request.couchdb_access_token
  super(env)
rescue Rack::OAuth2::Server::Abstract::Error => e
  e.realm ||= realm
  e.finish
end