devise-api 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -0
- data/README.md +6 -3
- data/app/controllers/devise/api/tokens_controller.rb +3 -2
- data/lib/devise/api/configuration.rb +1 -0
- data/lib/devise/api/responses/token_response.rb +10 -6
- data/lib/devise/api/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d86e2276841e4ca3ae7497278542d686da38368f5f5cdf76629abd463c7976f
|
4
|
+
data.tar.gz: 3f33438f2a503b0f1bd510e6020c0d88f61a82715aff8b701a1872a4901ffb75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: acea2091463ddb32d14df2c6b6aaf88e55549796b79ba35855ffdd08f3f78e8a5e5d9f305f48a855a2f3d17aa2cee2c8e7fce7ce07efda222af9de785a9f57cf
|
7
|
+
data.tar.gz: 8cecc648a297705d7d7f82420aa48fd6f4ed7d8899ba721cf0002cbae34f9f1e3fae5032877a4efa826f609c50592f894f9407adeeed6a12c7ca856b2dd9c5d2
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -93,6 +93,7 @@ Devise.setup do |config|
|
|
93
93
|
|
94
94
|
# Sign up
|
95
95
|
api.sign_up.enabled = true
|
96
|
+
api.sign_up.extra_fields = []
|
96
97
|
|
97
98
|
# Authorization
|
98
99
|
api.authorization.key = 'Authorization'
|
@@ -116,8 +117,8 @@ Devise.setup do |config|
|
|
116
117
|
# Before callbacks
|
117
118
|
api.before_sign_in = ->(_params, _request, _resource_class) { }
|
118
119
|
api.before_sign_up = ->(_params, _request, _resource_class) { }
|
119
|
-
api.before_refresh = ->(
|
120
|
-
api.before_revoke = ->(
|
120
|
+
api.before_refresh = ->(_token_model, _request) { }
|
121
|
+
api.before_revoke = ->(_token_model, _request) { }
|
121
122
|
end
|
122
123
|
end
|
123
124
|
```
|
@@ -157,10 +158,12 @@ module Devise::Api::Responses::TokenResponseDecorator
|
|
157
158
|
end
|
158
159
|
```
|
159
160
|
|
160
|
-
Then you need to prepend your decorator to the response class. For example:
|
161
|
+
Then you need to load and prepend your decorator to the response class. For example:
|
161
162
|
|
162
163
|
```ruby
|
163
164
|
# config/initializers/devise.rb
|
165
|
+
require 'devise/api/responses/token_response_decorator' # Either do this or autoload the lib directory
|
166
|
+
|
164
167
|
Devise.setup do |config|
|
165
168
|
end
|
166
169
|
|
@@ -4,6 +4,7 @@
|
|
4
4
|
module Devise
|
5
5
|
module Api
|
6
6
|
class TokensController < Devise.api.config.base_controller.constantize
|
7
|
+
wrap_parameters false
|
7
8
|
skip_before_action :verify_authenticity_token, raise: false
|
8
9
|
before_action :authenticate_devise_api_token!, only: %i[info]
|
9
10
|
|
@@ -122,7 +123,7 @@ module Devise
|
|
122
123
|
error_response = Devise::Api::Responses::ErrorResponse.new(request, error: :revoked_token,
|
123
124
|
resource_class: resource_class)
|
124
125
|
|
125
|
-
render json: error_response.body, status: error_response.status
|
126
|
+
return render json: error_response.body, status: error_response.status
|
126
127
|
end
|
127
128
|
|
128
129
|
Devise.api.config.before_refresh.call(current_devise_api_refresh_token, request)
|
@@ -149,7 +150,7 @@ module Devise
|
|
149
150
|
private
|
150
151
|
|
151
152
|
def sign_up_params
|
152
|
-
params.permit(*resource_class.authentication_keys,
|
153
|
+
params.permit(*Devise.api.config.sign_up.extra_fields, *resource_class.authentication_keys,
|
153
154
|
*::Devise::ParameterSanitizer::DEFAULT_PERMITTED_ATTRIBUTES[:sign_up]).to_h
|
154
155
|
end
|
155
156
|
|
@@ -41,15 +41,19 @@ module Devise
|
|
41
41
|
refresh_token: Devise.api.config.refresh_token.enabled ? token.refresh_token : nil,
|
42
42
|
expires_in: token.expires_in,
|
43
43
|
token_type: ::Devise.api.config.authorization.scheme,
|
44
|
-
resource_owner:
|
45
|
-
id: resource_owner.id,
|
46
|
-
email: resource_owner.email,
|
47
|
-
created_at: resource_owner.created_at,
|
48
|
-
updated_at: resource_owner.updated_at
|
49
|
-
}
|
44
|
+
resource_owner: default_resource_owner
|
50
45
|
}.compact
|
51
46
|
end
|
52
47
|
|
48
|
+
def default_resource_owner
|
49
|
+
keys_to_extract = %i[id email created_at updated_at]
|
50
|
+
if Devise.api.config.sign_up.extra_fields.present?
|
51
|
+
keys_to_extract |= Devise.api.config.sign_up.extra_fields.map(&:to_sym)
|
52
|
+
end
|
53
|
+
|
54
|
+
resource_owner.slice(*keys_to_extract)
|
55
|
+
end
|
56
|
+
|
53
57
|
def status
|
54
58
|
return :created if sign_up_action?
|
55
59
|
return :no_content if revoke_action?
|
data/lib/devise/api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nejdetkadir
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: devise
|
@@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '0'
|
168
168
|
requirements: []
|
169
|
-
rubygems_version: 3.
|
169
|
+
rubygems_version: 3.5.18
|
170
170
|
signing_key:
|
171
171
|
specification_version: 4
|
172
172
|
summary: The devise-api gem is a convenient way to add authentication to your Ruby
|