devise-doorkeeper 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 86671a2c38cb4de8ee35adcc31882b88fc3b4c24
4
- data.tar.gz: d6e06702ab8a1b5c9cca0db54b163a05f39f1dad
3
+ metadata.gz: 4b64812bca11084c10439cfe6377381921d8d6b8
4
+ data.tar.gz: 0b004f998bb7d52e3deaf239e9379f8bf422502f
5
5
  SHA512:
6
- metadata.gz: a0532a3a220ce25b987e937a49198e1035448647b2a85f870a39a99555e8ef88c7f919a839501755c1f2fc7ef358cad018985f8925cce4cc44989cd6336ad074
7
- data.tar.gz: ce9de5eb268a458ce419bae539c0d7a2640bdde424feccb0c7704e72aa35f2f4db78f3483349998a92072615c0ec9f2b91384aa17c8394d59ac886f371cae90f
6
+ metadata.gz: c7530c5824b1d5f514eb0b925d824e19131a8d3835eb926e4947bd768c0f762e576d7e226d2dafe770ca910ac6a3eae0df402edf802ce8041a58374a8364bdd6
7
+ data.tar.gz: 44401f062a0dcf5ee444648a93572a719569d8c1e3158c82909870a5bc8aab536cf1efcc29a391cd736ad9a6d5e170fcc5c2c2974b957f0e648345a490f50f68
data/README.md CHANGED
@@ -26,12 +26,25 @@ gem 'devise-doorkeeper'
26
26
 
27
27
  #### Update doorkeeper config
28
28
  Update your `config/initializers/doorkeeper.rb` to call
29
- `Devise::Doorkeeper.configure(self)`.
29
+ `Devise::Doorkeeper.configure_doorkeeper(self)`.
30
30
 
31
31
  ```ruby
32
32
  # config/initializers/doorkeeper.rb
33
33
  Doorkeeper.configure do
34
- Devise::Doorkeeper.configure(self)
34
+ Devise::Doorkeeper.configure_doorkeeper(self)
35
+
36
+ # extra configuration goes below
37
+ end
38
+ ```
39
+
40
+ #### Update devise config
41
+ Update your `config/initializers/devise.rb` to call
42
+ `Devise::Doorkeeper.configure_devise`.
43
+
44
+ ```ruby
45
+ # config/initializers/devise.rb
46
+ Devise.setup do |config|
47
+ Devise::Doorkeeper.configure_devise(config)
35
48
 
36
49
  # extra configuration goes below
37
50
  end
@@ -3,7 +3,14 @@ require 'devise/strategies/doorkeeper'
3
3
 
4
4
  module Devise
5
5
  module Doorkeeper
6
- def self.configure(base)
6
+ def self.configure_devise(config)
7
+ config.warden do |manager|
8
+ require 'devise/doorkeeper/doorkeeper_failure_app'
9
+ manager.failure_app = Devise::Doorkeeper::DoorkeeperFailureApp
10
+ end
11
+ end
12
+
13
+ def self.configure_doorkeeper(base)
7
14
  base.instance_eval do
8
15
  resource_owner_authenticator do
9
16
  current_user || warden.authenticate!(scope: :user)
@@ -0,0 +1,25 @@
1
+ require 'devise/failure_app'
2
+ require 'devise/strategies/doorkeeper'
3
+
4
+ module Devise
5
+ module Doorkeeper
6
+ class DoorkeeperFailureApp < ::Devise::FailureApp
7
+ def respond
8
+ if warden_message == Devise::Strategies::Doorkeeper::WARDEN_INVALID_TOKEN_MESSAGE
9
+ invalid_oauth_token
10
+ else
11
+ super
12
+ end
13
+ end
14
+
15
+ private
16
+
17
+ def invalid_oauth_token
18
+ error = ::Doorkeeper::OAuth::InvalidTokenResponse.new
19
+ headers.merge! error.headers
20
+ self.response_body = error.body.to_json
21
+ self.status = error.status
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,5 +1,5 @@
1
1
  module Devise
2
2
  module Doorkeeper
3
- VERSION = '1.0.1'
3
+ VERSION = '1.1.0'
4
4
  end
5
5
  end
@@ -6,6 +6,8 @@ require 'devise/strategies/authenticatable'
6
6
  module Devise
7
7
  module Strategies
8
8
  class Doorkeeper < ::Devise::Strategies::Authenticatable
9
+ WARDEN_INVALID_TOKEN_MESSAGE = :invalid_token
10
+
9
11
  def valid?
10
12
  credentials = ::Doorkeeper::OAuth::Token.from_request(request, *access_token_methods)
11
13
  credentials.present?
@@ -46,7 +48,7 @@ module Devise
46
48
  end
47
49
 
48
50
  def invalid_token
49
- fail!(:invalid_token)
51
+ fail!(WARDEN_INVALID_TOKEN_MESSAGE)
50
52
  throw :warden
51
53
  end
52
54
 
@@ -58,12 +60,3 @@ module Devise
58
60
  end
59
61
  Warden::Strategies.add(:doorkeeper, Devise::Strategies::Doorkeeper)
60
62
  Devise.add_module(:doorkeeper, strategy: true)
61
-
62
-
63
- # if ///
64
- # error = OAuth::InvalidTokenResponse.from_access_token(doorkeeper_token)
65
- # options = doorkeeper_unauthorized_render_options
66
- # else
67
- # error = OAuth::ForbiddenTokenResponse.from_scopes(scopes)
68
- # options = doorkeeper_forbidden_render_options
69
- # end
@@ -1,6 +1,7 @@
1
1
  # Use this hook to configure devise mailer, warden hooks and so forth.
2
2
  # Many of these configuration options can be set straight in your model.
3
3
  Devise.setup do |config|
4
+ Devise::Doorkeeper.configure_devise(config)
4
5
  # The secret key used by Devise. Devise uses this key to generate
5
6
  # random tokens. Changing this key will render invalid all existing
6
7
  # confirmation, reset password and unlock tokens in the database.
@@ -1,5 +1,5 @@
1
1
  Doorkeeper.configure do
2
- Devise::Doorkeeper.configure(self)
2
+ Devise::Doorkeeper.configure_doorkeeper(self)
3
3
 
4
4
  # Change the ORM that doorkeeper will use.
5
5
  # Currently supported options are :active_record, :mongoid2, :mongoid3,
@@ -99,7 +99,7 @@ Doorkeeper.configure do
99
99
  # end
100
100
 
101
101
  # WWW-Authenticate Realm (default "Doorkeeper").
102
- # realm "Doorkeeper"
102
+ realm 'DeviseDoorkeeperApp'
103
103
 
104
104
  # Allow dynamic query parameters (disabled by default)
105
105
  # Some applications require dynamic query parameters on their request_uri
@@ -30,6 +30,7 @@ RSpec.describe 'OAuth bearer token requests', type: :request do
30
30
  get request_path, params, headers
31
31
  end
32
32
  it { expect(response.status).to eq 401 }
33
+ it { expect(response.headers).to include('WWW-Authenticate' => 'Bearer realm="DeviseDoorkeeperApp", error="invalid_token", error_description="The access token is invalid"') }
33
34
  end
34
35
  context 'with revoked access token' do
35
36
  with :access_token, revoked_at: 1.year.ago
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-doorkeeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Sonnek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-18 00:00:00.000000000 Z
11
+ date: 2015-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -209,6 +209,7 @@ files:
209
209
  - Rakefile
210
210
  - devise-doorkeeper.gemspec
211
211
  - lib/devise/doorkeeper.rb
212
+ - lib/devise/doorkeeper/doorkeeper_failure_app.rb
212
213
  - lib/devise/doorkeeper/version.rb
213
214
  - lib/devise/strategies/doorkeeper.rb
214
215
  - spec/dummy/.rspec