auth0 4.0.0 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +2 -1
- data/.rubocop_todo.yml +0 -2
- data/.travis.yml +4 -2
- data/CHANGELOG.md +40 -38
- data/DEPLOYMENT.md +5 -0
- data/Gemfile +1 -1
- data/README.md +20 -2
- data/Rakefile +1 -1
- data/auth0.gemspec +4 -3
- data/doc_config/templates/default/layout/html/footer.erb +1 -1
- data/examples/ruby-api/.gitignore +86 -0
- data/examples/ruby-api/Gemfile +8 -0
- data/examples/ruby-api/README.md +24 -0
- data/examples/ruby-api/config.ru +2 -0
- data/examples/ruby-api/main.rb +33 -0
- data/examples/ruby-on-rails-api/.gitignore +18 -0
- data/examples/ruby-on-rails-api/Gemfile +48 -0
- data/examples/ruby-on-rails-api/README.md +27 -0
- data/examples/ruby-on-rails-api/Rakefile +6 -0
- data/examples/ruby-on-rails-api/app/assets/images/.keep +0 -0
- data/examples/ruby-on-rails-api/app/assets/javascripts/application.js +16 -0
- data/examples/ruby-on-rails-api/app/assets/stylesheets/application.css +15 -0
- data/examples/ruby-on-rails-api/app/controllers/application_controller.rb +8 -0
- data/examples/ruby-on-rails-api/app/controllers/concerns/.keep +0 -0
- data/examples/ruby-on-rails-api/app/controllers/ping_controller.rb +6 -0
- data/examples/ruby-on-rails-api/app/controllers/secured_ping_controller.rb +11 -0
- data/examples/ruby-on-rails-api/app/helpers/application_helper.rb +3 -0
- data/examples/ruby-on-rails-api/app/mailers/.keep +0 -0
- data/examples/ruby-on-rails-api/app/models/.keep +0 -0
- data/examples/ruby-on-rails-api/app/models/concerns/.keep +0 -0
- data/examples/ruby-on-rails-api/app/views/layouts/application.html.erb +14 -0
- data/examples/ruby-on-rails-api/bin/bundle +3 -0
- data/examples/ruby-on-rails-api/bin/rails +4 -0
- data/examples/ruby-on-rails-api/bin/rake +4 -0
- data/examples/ruby-on-rails-api/bin/setup +29 -0
- data/examples/ruby-on-rails-api/config.ru +4 -0
- data/examples/ruby-on-rails-api/config/application.rb +23 -0
- data/examples/ruby-on-rails-api/config/boot.rb +4 -0
- data/examples/ruby-on-rails-api/config/database.yml +27 -0
- data/examples/ruby-on-rails-api/config/environment.rb +5 -0
- data/examples/ruby-on-rails-api/config/environments/development.rb +37 -0
- data/examples/ruby-on-rails-api/config/environments/production.rb +83 -0
- data/examples/ruby-on-rails-api/config/environments/test.rb +41 -0
- data/examples/ruby-on-rails-api/config/initializers/backtrace_silencers.rb +7 -0
- data/examples/ruby-on-rails-api/config/initializers/cookies_serializer.rb +3 -0
- data/examples/ruby-on-rails-api/config/initializers/dotenv.rb +4 -0
- data/examples/ruby-on-rails-api/config/initializers/filter_parameter_logging.rb +4 -0
- data/examples/ruby-on-rails-api/config/initializers/inflections.rb +16 -0
- data/examples/ruby-on-rails-api/config/initializers/knock.rb +53 -0
- data/examples/ruby-on-rails-api/config/initializers/mime_types.rb +4 -0
- data/examples/ruby-on-rails-api/config/initializers/session_store.rb +3 -0
- data/examples/ruby-on-rails-api/config/initializers/wrap_parameters.rb +14 -0
- data/examples/ruby-on-rails-api/config/locales/en.yml +23 -0
- data/examples/ruby-on-rails-api/config/routes.rb +58 -0
- data/examples/ruby-on-rails-api/config/secrets.yml +28 -0
- data/examples/ruby-on-rails-api/db/schema.rb +15 -0
- data/examples/ruby-on-rails-api/db/seeds.rb +7 -0
- data/examples/ruby-on-rails-api/lib/assets/.keep +0 -0
- data/examples/ruby-on-rails-api/lib/tasks/.keep +0 -0
- data/examples/ruby-on-rails-api/log/.keep +0 -0
- data/examples/ruby-on-rails-api/public/404.html +67 -0
- data/examples/ruby-on-rails-api/public/422.html +67 -0
- data/examples/ruby-on-rails-api/public/500.html +66 -0
- data/examples/ruby-on-rails-api/public/favicon.ico +0 -0
- data/examples/ruby-on-rails-api/public/robots.txt +5 -0
- data/examples/ruby-on-rails-api/test/controllers/.keep +0 -0
- data/examples/ruby-on-rails-api/test/fixtures/.keep +0 -0
- data/examples/ruby-on-rails-api/test/helpers/.keep +0 -0
- data/examples/ruby-on-rails-api/test/integration/.keep +0 -0
- data/examples/ruby-on-rails-api/test/mailers/.keep +0 -0
- data/examples/ruby-on-rails-api/test/models/.keep +0 -0
- data/examples/ruby-on-rails-api/test/ping_controller_test.rb +8 -0
- data/examples/ruby-on-rails-api/test/secured_ping_controller_test.rb +26 -0
- data/examples/ruby-on-rails-api/test/test_helper.rb +16 -0
- data/lib/auth0/api/authentication_endpoints.rb +59 -30
- data/lib/auth0/api/v1/clients.rb +1 -1
- data/lib/auth0/api/v1/connections.rb +4 -3
- data/lib/auth0/api/v1/logs.rb +1 -1
- data/lib/auth0/api/v1/rules.rb +1 -1
- data/lib/auth0/api/v1/users.rb +5 -5
- data/lib/auth0/api/v2.rb +10 -0
- data/lib/auth0/api/v2/blacklists.rb +1 -1
- data/lib/auth0/api/v2/client_grants.rb +57 -0
- data/lib/auth0/api/v2/clients.rb +14 -14
- data/lib/auth0/api/v2/connections.rb +19 -20
- data/lib/auth0/api/v2/device_credentials.rb +76 -0
- data/lib/auth0/api/v2/emails.rb +5 -7
- data/lib/auth0/api/v2/jobs.rb +15 -12
- data/lib/auth0/api/v2/logs.rb +65 -0
- data/lib/auth0/api/v2/resource_servers.rb +61 -0
- data/lib/auth0/api/v2/rules.rb +21 -20
- data/lib/auth0/api/v2/stats.rb +2 -2
- data/lib/auth0/api/v2/tenants.rb +6 -4
- data/lib/auth0/api/v2/tickets.rb +13 -14
- data/lib/auth0/api/v2/user_blocks.rb +62 -0
- data/lib/auth0/api/v2/users.rb +63 -32
- data/lib/auth0/client.rb +0 -2
- data/lib/auth0/mixins.rb +4 -3
- data/lib/auth0/mixins/httpproxy.rb +55 -0
- data/lib/auth0/mixins/initializer.rb +27 -10
- data/lib/auth0/version.rb +1 -1
- data/spec/integration/lib/auth0/api/api_authentication_spec.rb +118 -0
- data/spec/integration/lib/auth0/api/v2/api_blacklist_spec.rb +1 -1
- data/spec/integration/lib/auth0/api/v2/api_client_grants_spec.rb +53 -0
- data/spec/integration/lib/auth0/api/v2/api_clients_spec.rb +5 -2
- data/spec/integration/lib/auth0/api/v2/api_connections_spec.rb +8 -5
- data/spec/integration/lib/auth0/api/v2/api_device_credentials_spec.rb +67 -0
- data/spec/integration/lib/auth0/api/v2/api_email_spec.rb +15 -8
- data/spec/integration/lib/auth0/api/v2/api_jobs_spec.rb +11 -9
- data/spec/integration/lib/auth0/api/v2/api_logs_spec.rb +69 -0
- data/spec/integration/lib/auth0/api/v2/api_resource_servers_spec.rb +47 -0
- data/spec/integration/lib/auth0/api/v2/api_rules_spec.rb +2 -1
- data/spec/integration/lib/auth0/api/v2/api_tickets_spec.rb +2 -2
- data/spec/integration/lib/auth0/api/v2/api_user_blocks_spec.rb +73 -0
- data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +32 -5
- data/spec/integration/lib/auth0/auth0_client_spec.rb +14 -11
- data/spec/lib/auth0/api/authentication_endpoints_spec.rb +116 -56
- data/spec/lib/auth0/api/v1/connections_spec.rb +2 -4
- data/spec/lib/auth0/api/v1/rules_spec.rb +2 -1
- data/spec/lib/auth0/api/v1/users_spec.rb +17 -9
- data/spec/lib/auth0/api/v2/client_grants_spec.rb +44 -0
- data/spec/lib/auth0/api/v2/connections_spec.rb +2 -1
- data/spec/lib/auth0/api/v2/device_credentials_spec.rb +73 -0
- data/spec/lib/auth0/api/v2/jobs_spec.rb +3 -2
- data/spec/lib/auth0/api/v2/logs_spec.rb +48 -0
- data/spec/lib/auth0/api/v2/resource_servers_spec.rb +63 -0
- data/spec/lib/auth0/api/v2/rules_spec.rb +8 -4
- data/spec/lib/auth0/api/v2/tenants_spec.rb +2 -1
- data/spec/lib/auth0/api/v2/tickets_spec.rb +4 -7
- data/spec/lib/auth0/api/v2/user_blocks_spec.rb +52 -0
- data/spec/lib/auth0/api/v2/users_spec.rb +39 -6
- data/spec/lib/auth0/client_spec.rb +8 -5
- data/spec/lib/auth0/mixins/httpproxy_spec.rb +225 -0
- data/spec/lib/auth0/mixins/initializer_spec.rb +1 -1
- data/spec/spec_helper_full.rb +12 -3
- data/spec/spec_helper_unit.rb +2 -2
- data/spec/support/credentials.rb +6 -4
- data/spec/support/dummy_class.rb +2 -1
- data/spec/support/dummy_class_for_proxy.rb +2 -2
- data/spec/support/dummy_class_for_restclient.rb +2 -0
- metadata +117 -9
- data/lib/auth0/mixins/httparty_proxy.rb +0 -38
- data/spec/lib/auth0/mixins/httparty_proxy_spec.rb +0 -148
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
# Secure Ping Controller Test
|
3
|
+
class SecuredPingControllerTest < ActionController::TestCase
|
4
|
+
def with_a_valid_token
|
5
|
+
@user = { id: 1 }
|
6
|
+
@token = Knock::AuthToken.new(payload: { sub: @user[:id] }).token
|
7
|
+
@request.env['HTTP_AUTHORIZATION'] = "Bearer #{@token}"
|
8
|
+
end
|
9
|
+
|
10
|
+
test 'responds with unauthorized' do
|
11
|
+
get :ping
|
12
|
+
assert_response :unauthorized
|
13
|
+
end
|
14
|
+
|
15
|
+
test 'responds with success when passing a valid token' do
|
16
|
+
with_a_valid_token
|
17
|
+
get :ping
|
18
|
+
assert_response :success
|
19
|
+
end
|
20
|
+
|
21
|
+
test '@current_user is set when passing a valid token' do
|
22
|
+
with_a_valid_token
|
23
|
+
get :ping
|
24
|
+
assert_equal @user[:id], @controller.current_user[:id]
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
ENV['RAILS_ENV'] ||= 'test'
|
2
|
+
require File.expand_path('../../config/environment', __FILE__)
|
3
|
+
require 'rails/test_help'
|
4
|
+
# Active Support
|
5
|
+
class ActiveSupport
|
6
|
+
# Test Case
|
7
|
+
class TestCase
|
8
|
+
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
|
9
|
+
#
|
10
|
+
# Note: You'll currently still have to declare fixtures explicitly in integration tests
|
11
|
+
# -- they do not yet inherit this setting
|
12
|
+
fixtures :all
|
13
|
+
|
14
|
+
# Add more helper methods to be used by all tests here...
|
15
|
+
end
|
16
|
+
end
|
@@ -4,8 +4,8 @@ module Auth0
|
|
4
4
|
# {https://auth0.com/docs/auth-api}
|
5
5
|
# Methods to use the authentication endpoints
|
6
6
|
module AuthenticationEndpoints
|
7
|
-
UP_AUTH = 'Username-Password-Authentication'
|
8
|
-
JWT_BEARER = 'urn:ietf:params:oauth:grant-type:jwt-bearer'
|
7
|
+
UP_AUTH = 'Username-Password-Authentication'.freeze
|
8
|
+
JWT_BEARER = 'urn:ietf:params:oauth:grant-type:jwt-bearer'.freeze
|
9
9
|
|
10
10
|
# Retrives an access token
|
11
11
|
# @see https://auth0.com/docs/auth-api#!#post--oauth-access_token
|
@@ -22,6 +22,28 @@ module Auth0
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
+
# Gets the user tokens using the code obtained through passive authentication in the specified connection
|
26
|
+
# @see https://auth0.com/docs/auth-api#!#post--oauth-access_token
|
27
|
+
# @param connection [string] Currently, this endpoint only works for Facebook, Google, Twitter and Weibo
|
28
|
+
# @param scope [string] Defaults to openid. Can be 'openid name email', 'openid offline_access'
|
29
|
+
# @param redirect_uri [string] Url to redirect after authorization
|
30
|
+
# @param redirect_uri [string] The access code obtained through passive authentication
|
31
|
+
# @return [json] Returns the access_token and id_token
|
32
|
+
def obtain_user_tokens(code, redirect_uri, connection = 'facebook', scope = 'openid')
|
33
|
+
raise Auth0::InvalidParameter, 'Must supply a valid code' if code.to_s.empty?
|
34
|
+
raise Auth0::InvalidParameter, 'Must supply a valid redirect_uri' if redirect_uri.to_s.empty?
|
35
|
+
request_params = {
|
36
|
+
client_id: @client_id,
|
37
|
+
client_secret: @client_secret,
|
38
|
+
connection: connection,
|
39
|
+
grant_type: 'authorization_code',
|
40
|
+
code: code,
|
41
|
+
scope: scope,
|
42
|
+
redirect_uri: redirect_uri
|
43
|
+
}
|
44
|
+
post('/oauth/token', request_params)
|
45
|
+
end
|
46
|
+
|
25
47
|
# Logins using username/password
|
26
48
|
# @see https://auth0.com/docs/auth-api#!#post--oauth-ro
|
27
49
|
# @param username [string] Username
|
@@ -32,8 +54,8 @@ module Auth0
|
|
32
54
|
# Active Directory/LDAP, Windows Azure AD and ADF
|
33
55
|
# @return [json] Returns the access token and id token
|
34
56
|
def login(username, password, id_token = nil, connection_name = UP_AUTH, options = {})
|
35
|
-
|
36
|
-
|
57
|
+
raise Auth0::InvalidParameter, 'Must supply a valid username' if username.to_s.empty?
|
58
|
+
raise Auth0::InvalidParameter, 'Must supply a valid password' if password.to_s.empty?
|
37
59
|
request_params = {
|
38
60
|
client_id: @client_id,
|
39
61
|
username: username,
|
@@ -54,8 +76,8 @@ module Auth0
|
|
54
76
|
# @param connection_name [string] Connection name. Works for database connections.
|
55
77
|
# @return [json] Returns the created user
|
56
78
|
def signup(email, password, connection_name = UP_AUTH)
|
57
|
-
|
58
|
-
|
79
|
+
raise Auth0::InvalidParameter, 'Must supply a valid email' if email.to_s.empty?
|
80
|
+
raise Auth0::InvalidParameter, 'Must supply a valid password' if password.to_s.empty?
|
59
81
|
request_params = {
|
60
82
|
client_id: @client_id,
|
61
83
|
email: email,
|
@@ -72,7 +94,7 @@ module Auth0
|
|
72
94
|
# @param password [string] User's new password
|
73
95
|
# @param connection_name [string] Connection name. Works for database connections.
|
74
96
|
def change_password(email, password, connection_name = UP_AUTH)
|
75
|
-
|
97
|
+
raise Auth0::InvalidParameter, 'Must supply a valid email' if email.to_s.empty?
|
76
98
|
request_params = {
|
77
99
|
client_id: @client_id,
|
78
100
|
email: email,
|
@@ -88,12 +110,13 @@ module Auth0
|
|
88
110
|
# @param send [string] Defaults to 'link'. Can be 'code'. You can then authenticate with this user opening the link
|
89
111
|
# @param auth_params [hash] Append/override parameters to the link (like scope, redirect_uri, protocol, etc.)
|
90
112
|
def start_passwordless_email_flow(email, send = 'link', auth_params = {})
|
91
|
-
|
113
|
+
raise Auth0::InvalidParameter, 'Must supply a valid email' if email.to_s.empty?
|
92
114
|
request_params = {
|
93
|
-
client_id:
|
94
|
-
|
95
|
-
|
96
|
-
|
115
|
+
client_id: @client_id,
|
116
|
+
connection: 'email',
|
117
|
+
email: email,
|
118
|
+
send: send,
|
119
|
+
authParams: auth_params
|
97
120
|
}
|
98
121
|
post('/passwordless/start', request_params)
|
99
122
|
end
|
@@ -102,7 +125,7 @@ module Auth0
|
|
102
125
|
# @see https://auth0.com/docs/auth-api#!#post--with_sms
|
103
126
|
# @param phone_number [string] User's phone number.
|
104
127
|
def start_passwordless_sms_flow(phone_number)
|
105
|
-
|
128
|
+
raise Auth0::InvalidParameter, 'Must supply a valid phone number' if phone_number.to_s.empty?
|
106
129
|
request_params = {
|
107
130
|
client_id: @client_id,
|
108
131
|
connection: 'sms',
|
@@ -117,8 +140,8 @@ module Auth0
|
|
117
140
|
# @param code [string] Verification code.
|
118
141
|
# @return [json] Returns the access token and id token
|
119
142
|
def phone_login(phone_number, code, scope = 'openid')
|
120
|
-
|
121
|
-
|
143
|
+
raise Auth0::InvalidParameter, 'Must supply a valid phone number' if phone_number.to_s.empty?
|
144
|
+
raise Auth0::InvalidParameter, 'Must supply a valid code' if code.to_s.empty?
|
122
145
|
request_params = {
|
123
146
|
client_id: @client_id,
|
124
147
|
username: phone_number,
|
@@ -132,11 +155,9 @@ module Auth0
|
|
132
155
|
|
133
156
|
# Retrives the SAML 2.0 metadata
|
134
157
|
# @see https://auth0.com/docs/auth-api#!#get--samlp--client_id-
|
135
|
-
# @param client_id [string] Client id
|
136
158
|
# @return [xml] SAML 2.0 metadata
|
137
|
-
def saml_metadata
|
138
|
-
|
139
|
-
get("/samlp/metadata/#{client_id}")
|
159
|
+
def saml_metadata
|
160
|
+
get("/samlp/metadata/#{@client_id}")
|
140
161
|
end
|
141
162
|
|
142
163
|
# Retrives the WS-Federation metadata
|
@@ -151,7 +172,7 @@ module Auth0
|
|
151
172
|
# @param id_token [string] Token's id.
|
152
173
|
# @return User information associated with the user id (sub property) of the token.
|
153
174
|
def token_info(id_token)
|
154
|
-
|
175
|
+
raise Auth0::InvalidParameter, 'Must supply a valid id_token' if id_token.to_s.empty?
|
155
176
|
request_params = { id_token: id_token }
|
156
177
|
post('/tokeninfo', request_params)
|
157
178
|
end
|
@@ -166,7 +187,7 @@ module Auth0
|
|
166
187
|
# @param extra_parameters [hash] Extra parameters.
|
167
188
|
# @return [json] Returns the refreshed delegation token
|
168
189
|
def refresh_delegation(refresh_token, target, scope = 'openid', api_type = 'app', extra_parameters = {})
|
169
|
-
|
190
|
+
raise Auth0::InvalidParameter, 'Must supply a valid token to refresh' if refresh_token.to_s.empty?
|
170
191
|
request_params = {
|
171
192
|
client_id: @client_id,
|
172
193
|
grant_type: JWT_BEARER,
|
@@ -188,7 +209,7 @@ module Auth0
|
|
188
209
|
# @param extra_parameters [hash] Extra parameters.
|
189
210
|
# @return [json] Returns the refreshed delegation token
|
190
211
|
def delegation(id_token, target, scope = 'openid', api_type = 'app', extra_parameters = {})
|
191
|
-
|
212
|
+
raise Auth0::InvalidParameter, 'Must supply a valid id_token' if id_token.to_s.empty?
|
192
213
|
request_params = {
|
193
214
|
client_id: @client_id,
|
194
215
|
grant_type: JWT_BEARER,
|
@@ -207,8 +228,13 @@ module Auth0
|
|
207
228
|
# @param impersonator_id [string] Impersonator user id id.
|
208
229
|
# @param options [string] Additional Parameters
|
209
230
|
# @return [string] Impersonation URL
|
231
|
+
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
210
232
|
def impersonate(user_id, app_client_id, impersonator_id, options)
|
211
|
-
|
233
|
+
raise Auth0::InvalidParameter, 'Must supply a valid user_id' if user_id.to_s.empty?
|
234
|
+
raise Auth0::InvalidParameter, 'Must supply a valid app_client_id' if app_client_id.to_s.empty?
|
235
|
+
raise Auth0::InvalidParameter, 'Must supply a valid impersonator_id' if impersonator_id.to_s.empty?
|
236
|
+
raise Auth0::MissingParameter, 'Must supply client_secret' if @client_secret.nil?
|
237
|
+
authorization_header obtain_access_token
|
212
238
|
request_params = {
|
213
239
|
protocol: options.fetch(:protocol, 'oauth2'),
|
214
240
|
impersonator_id: impersonator_id,
|
@@ -220,7 +246,9 @@ module Auth0
|
|
220
246
|
callback_url: options.fetch(:callback_url, '')
|
221
247
|
}
|
222
248
|
}
|
223
|
-
post("/users/#{user_id}/impersonate", request_params)
|
249
|
+
result = post("/users/#{user_id}/impersonate", request_params)
|
250
|
+
authorization_header @token
|
251
|
+
result
|
224
252
|
end
|
225
253
|
|
226
254
|
# Unlinks a User
|
@@ -228,8 +256,8 @@ module Auth0
|
|
228
256
|
# @param access_token [string] Logged-in user access token
|
229
257
|
# @param user_id [string] User Id
|
230
258
|
def unlink_user(access_token, user_id)
|
231
|
-
|
232
|
-
|
259
|
+
raise Auth0::InvalidParameter, 'Must supply a valid access_token' if access_token.to_s.empty?
|
260
|
+
raise Auth0::InvalidParameter, 'Must supply a valid user_id' if user_id.to_s.empty?
|
233
261
|
request_params = {
|
234
262
|
access_token: access_token,
|
235
263
|
user_id: user_id
|
@@ -250,13 +278,14 @@ module Auth0
|
|
250
278
|
# @param options [hash] Can contain response_type, connection, state and additional_parameters.
|
251
279
|
# @return [url] Authorization URL.
|
252
280
|
def authorization_url(redirect_uri, options = {})
|
253
|
-
|
281
|
+
raise Auth0::InvalidParameter, 'Must supply a valid redirect_uri' if redirect_uri.to_s.empty?
|
254
282
|
request_params = {
|
255
283
|
client_id: @client_id,
|
256
|
-
response_type: options.fetch(:
|
284
|
+
response_type: options.fetch(:response_type, 'code'),
|
257
285
|
connection: options.fetch(:connection, nil),
|
258
|
-
|
259
|
-
state: options.fetch(:state, nil)
|
286
|
+
redirect_uri: redirect_uri,
|
287
|
+
state: options.fetch(:state, nil),
|
288
|
+
scope: options.fetch(:scope, nil)
|
260
289
|
}.merge(options.fetch(:additional_parameters, {}))
|
261
290
|
|
262
291
|
URI::HTTPS.build(host: @domain, path: '/authorize', query: to_query(request_params))
|
data/lib/auth0/api/v1/clients.rb
CHANGED
@@ -7,14 +7,14 @@ module Auth0
|
|
7
7
|
def connections
|
8
8
|
get('/api/connections')
|
9
9
|
end
|
10
|
-
|
10
|
+
alias get_connections connections
|
11
11
|
|
12
12
|
# {https://auth0.com/docs/api#!#get--api-connections--connection-name-}
|
13
13
|
def connection(connection_name)
|
14
14
|
path = "/api/connections/#{connection_name}"
|
15
15
|
get(path)
|
16
16
|
end
|
17
|
-
|
17
|
+
alias get_connection connection
|
18
18
|
|
19
19
|
# {https://auth0.com/docs/api#!#delete--api-connections--connection-name-}
|
20
20
|
def delete_connection(connection_name)
|
@@ -30,7 +30,8 @@ module Auth0
|
|
30
30
|
strategy: strategy,
|
31
31
|
options: {
|
32
32
|
tenant_domain: tenant_domain,
|
33
|
-
domain_aliases: domain_aliases
|
33
|
+
domain_aliases: domain_aliases
|
34
|
+
}
|
34
35
|
}
|
35
36
|
post(path, request_params)
|
36
37
|
end
|
data/lib/auth0/api/v1/logs.rb
CHANGED
data/lib/auth0/api/v1/rules.rb
CHANGED
data/lib/auth0/api/v1/users.rb
CHANGED
@@ -13,8 +13,8 @@ module Auth0
|
|
13
13
|
get(path)
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
|
16
|
+
alias users_search users
|
17
|
+
alias get_users users
|
18
18
|
|
19
19
|
# {https://auth0.com/docs/api#!#get--api-users--user_id-}
|
20
20
|
def user(user_id)
|
@@ -22,7 +22,7 @@ module Auth0
|
|
22
22
|
get(path)
|
23
23
|
end
|
24
24
|
|
25
|
-
|
25
|
+
alias get_user user
|
26
26
|
|
27
27
|
# {https://auth0.com/docs/api#!#get--api-users--user_id--devices}
|
28
28
|
def user_devices(user_id)
|
@@ -38,7 +38,7 @@ module Auth0
|
|
38
38
|
get(path)
|
39
39
|
end
|
40
40
|
|
41
|
-
|
41
|
+
alias search_connection_users connection_users
|
42
42
|
|
43
43
|
# {https://auth0.com/docs/api#!#get--api-enterpriseconnections-users-search--criteria-}
|
44
44
|
def enterpriseconnections_users(search_criteria = nil, per_page = 500)
|
@@ -142,7 +142,7 @@ module Auth0
|
|
142
142
|
|
143
143
|
# {https://auth0.com/docs/api#!#delete--api-users--user_id-}
|
144
144
|
def delete_user(user_id)
|
145
|
-
|
145
|
+
raise Auth0::MissingUserId, 'if you want to remove all users use delete_users method' if user_id.to_s.empty?
|
146
146
|
path = "/api/users/#{user_id}"
|
147
147
|
delete(path)
|
148
148
|
end
|
data/lib/auth0/api/v2.rb
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
require 'auth0/api/v2/blacklists'
|
2
2
|
require 'auth0/api/v2/clients'
|
3
|
+
require 'auth0/api/v2/client_grants'
|
3
4
|
require 'auth0/api/v2/connections'
|
5
|
+
require 'auth0/api/v2/device_credentials'
|
4
6
|
require 'auth0/api/v2/emails'
|
5
7
|
require 'auth0/api/v2/jobs'
|
6
8
|
require 'auth0/api/v2/rules'
|
7
9
|
require 'auth0/api/v2/stats'
|
8
10
|
require 'auth0/api/v2/users'
|
11
|
+
require 'auth0/api/v2/user_blocks'
|
9
12
|
require 'auth0/api/v2/tenants'
|
10
13
|
require 'auth0/api/v2/tickets'
|
14
|
+
require 'auth0/api/v2/logs'
|
15
|
+
require 'auth0/api/v2/resource_servers'
|
11
16
|
|
12
17
|
module Auth0
|
13
18
|
module Api
|
@@ -15,14 +20,19 @@ module Auth0
|
|
15
20
|
module V2
|
16
21
|
include Auth0::Api::V2::Blacklists
|
17
22
|
include Auth0::Api::V2::Clients
|
23
|
+
include Auth0::Api::V2::ClientGrants
|
18
24
|
include Auth0::Api::V2::Connections
|
25
|
+
include Auth0::Api::V2::DeviceCredentials
|
19
26
|
include Auth0::Api::V2::Emails
|
20
27
|
include Auth0::Api::V2::Jobs
|
21
28
|
include Auth0::Api::V2::Rules
|
22
29
|
include Auth0::Api::V2::Stats
|
23
30
|
include Auth0::Api::V2::Users
|
31
|
+
include Auth0::Api::V2::UserBlocks
|
24
32
|
include Auth0::Api::V2::Tenants
|
25
33
|
include Auth0::Api::V2::Tickets
|
34
|
+
include Auth0::Api::V2::Logs
|
35
|
+
include Auth0::Api::V2::ResourceServers
|
26
36
|
end
|
27
37
|
end
|
28
38
|
end
|
@@ -25,7 +25,7 @@ module Auth0
|
|
25
25
|
# @return [json] Returns the blacklisted token
|
26
26
|
#
|
27
27
|
def add_token_to_blacklist(jti, aud = nil)
|
28
|
-
|
28
|
+
raise Auth0::MissingParameter, 'Must specify a valid JTI' if jti.to_s.empty?
|
29
29
|
request_params = {
|
30
30
|
jti: jti,
|
31
31
|
aud: aud
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Auth0
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
# Methods to use the client grants endpoints
|
5
|
+
module ClientGrants
|
6
|
+
attr_reader :client_grants_path
|
7
|
+
|
8
|
+
# Retrieves a list of all client grants.
|
9
|
+
# @see https://auth0.com/docs/api/management/v2#!/client_grants/get_client_grants
|
10
|
+
#
|
11
|
+
# @return [json] Returns the client grants.
|
12
|
+
def client_grants
|
13
|
+
get(client_grants_path)
|
14
|
+
end
|
15
|
+
alias get_all_client_grants client_grants
|
16
|
+
|
17
|
+
# Creates a new client grant.
|
18
|
+
# @see https://auth0.com/docs/api/management/v2#!/client_grants/post_client_grants
|
19
|
+
# @param options [hash] The Hash options used to define the client grant's properties.
|
20
|
+
#
|
21
|
+
# @return [json] Returns the created client grant.
|
22
|
+
def create_client_grant(options = {})
|
23
|
+
request_params = Hash[options.map { |(k, v)| [k.to_sym, v] }]
|
24
|
+
post(client_grants_path, request_params)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Deletes a client grant given its id.
|
28
|
+
# @see https://auth0.com/docs/api/management/v2#!/client_grants/delete_client_grants_by_id
|
29
|
+
# @param client_id [string] The id of the client grant to delete.
|
30
|
+
def delete_client_grant(client_grant_id)
|
31
|
+
raise Auth0::InvalidParameter, 'Must specify a client grant id' if client_grant_id.to_s.empty?
|
32
|
+
path = "#{client_grants_path}/#{client_grant_id}"
|
33
|
+
delete(path)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Updates a client grant.
|
37
|
+
# @see https://auth0.com/docs/api/management/v2#!/client_grants/patch_client_grants_by_id
|
38
|
+
# @param client_id [string] The id of the client grant to update.
|
39
|
+
# @param options [hash] The Hash options used to define the client grant's properties.
|
40
|
+
def patch_client_grant(client_grant_id, options)
|
41
|
+
raise Auth0::InvalidParameter, 'Must specify a client grant id' if client_grant_id.to_s.empty?
|
42
|
+
raise Auth0::InvalidParameter, 'Must specify a valid body' if options.to_s.empty?
|
43
|
+
path = "#{client_grants_path}/#{client_grant_id}"
|
44
|
+
patch(path, options)
|
45
|
+
end
|
46
|
+
alias update_client_grant patch_client_grant
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
# Client Grants API path
|
51
|
+
def client_grants_path
|
52
|
+
@client_grants_path ||= '/api/v2/client-grants'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|