login_radius 11.0.0 → 11.2.2

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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +21 -21
  3. data/README.md +58 -58
  4. data/lib/login_radius/api/account/account_api.rb +581 -581
  5. data/lib/login_radius/api/account/role_api.rb +330 -330
  6. data/lib/login_radius/api/account/sott_api.rb +47 -47
  7. data/lib/login_radius/api/advanced/configuration_api.rb +57 -57
  8. data/lib/login_radius/api/advanced/consent_management_api.rb +161 -161
  9. data/lib/login_radius/api/advanced/custom_object_api.rb +316 -316
  10. data/lib/login_radius/api/advanced/custom_registration_data_api.rb +195 -195
  11. data/lib/login_radius/api/advanced/multi_factor_authentication_api.rb +942 -606
  12. data/lib/login_radius/api/advanced/re_authentication_api.rb +317 -243
  13. data/lib/login_radius/api/advanced/web_hook_api.rb +101 -101
  14. data/lib/login_radius/api/authentication/authentication_api.rb +1036 -989
  15. data/lib/login_radius/api/authentication/one_touch_login_api.rb +160 -160
  16. data/lib/login_radius/api/authentication/password_less_login_api.rb +202 -158
  17. data/lib/login_radius/api/authentication/phone_authentication_api.rb +329 -329
  18. data/lib/login_radius/api/authentication/pin_authentication_api.rb +316 -316
  19. data/lib/login_radius/api/authentication/risk_based_authentication_api.rb +286 -286
  20. data/lib/login_radius/api/authentication/smart_login_api.rb +146 -146
  21. data/lib/login_radius/api/social/native_social_api.rb +255 -255
  22. data/lib/login_radius/api/social/social_api.rb +784 -806
  23. data/lib/login_radius/error.rb +7 -7
  24. data/lib/login_radius/request_client.rb +311 -295
  25. data/lib/login_radius/response.rb +18 -12
  26. data/lib/login_radius/version.rb +2 -2
  27. data/lib/login_radius.rb +30 -30
  28. data/login_radius.gemspec +25 -28
  29. metadata +7 -7
@@ -1,243 +1,317 @@
1
- # frozen_string_literal: true
2
-
3
- # Created by LoginRadius Development Team
4
- # Copyright 2019 LoginRadius Inc. All rights reserved.
5
- require_relative '../../request_client'
6
-
7
- module LoginRadius
8
- # ReAuthenticationApi module
9
- class ReAuthenticationApi
10
- include RequestClient
11
-
12
- attr_accessor :site_name, :api_key, :api_secret
13
-
14
- # Initializes a LoginRadius Account object with an apikey and secret
15
- # Takes in a hash containing site_name(required), api_key(required), api_secret(required)
16
- def initialize
17
- @site_name = ENV['SITE_NAME']
18
- @api_key = ENV['API_KEY']
19
- @api_secret = ENV['API_SECRET']
20
- raise LoginRadius::Error.new, "'site_name' is a required option for Account class initialization." \
21
- unless @site_name != '' && @site_name != nil
22
- raise LoginRadius::Error.new, "'api_key' is a required option for Account class initialization." \
23
- unless @api_key != '' && @api_key != nil
24
- raise LoginRadius::Error.new, "'api_secret is a required option for Account class initialization." \
25
- unless @api_secret != '' && @api_secret != nil
26
- end
27
-
28
- # This API is used to trigger the Multi-Factor Autentication workflow for the provided access token
29
- #
30
- # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
31
- # @param sms_template2_f_a - SMS Template Name
32
- #
33
- # @return Response containing Definition of Complete Multi-Factor Authentication Settings data
34
- # 14.3
35
- def mfa_re_authenticate(access_token, sms_template2_f_a = '')
36
- if isNullOrWhiteSpace(access_token)
37
- raise LoginRadius::Error.new, getValidationMessage('access_token')
38
- end
39
-
40
- query_parameters = {}
41
- query_parameters['access_token'] = access_token
42
- query_parameters['apiKey'] = @api_key
43
- unless isNullOrWhiteSpace(sms_template2_f_a)
44
- query_parameters['smsTemplate2FA'] = sms_template2_f_a
45
- end
46
-
47
- resource_path = 'identity/v2/auth/account/reauth/2fa'
48
- get_request(resource_path, query_parameters, nil)
49
- end
50
-
51
- # This API is used to re-authenticate via Multi-factor authentication by passing the One Time Password received via SMS
52
- #
53
- # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
54
- # @param reauth_by_otp_model - Model Class containing Definition for MFA Reauthentication by OTP
55
- #
56
- # @return Complete user Multi-Factor Authentication Token data
57
- # 14.4
58
- def mfa_re_authenticate_by_otp(access_token, reauth_by_otp_model)
59
- if isNullOrWhiteSpace(access_token)
60
- raise LoginRadius::Error.new, getValidationMessage('access_token')
61
- end
62
- if reauth_by_otp_model.blank?
63
- raise LoginRadius::Error.new, getValidationMessage('reauth_by_otp_model')
64
- end
65
-
66
- query_parameters = {}
67
- query_parameters['access_token'] = access_token
68
- query_parameters['apiKey'] = @api_key
69
-
70
- resource_path = 'identity/v2/auth/account/reauth/2fa/otp'
71
- put_request(resource_path, query_parameters, reauth_by_otp_model)
72
- end
73
-
74
- # This API is used to re-authenticate by set of backup codes via access token on the site that has Multi-factor authentication enabled in re-authentication for the user that does not have the device
75
- #
76
- # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
77
- # @param reauth_by_backup_code_model - Model Class containing Definition for MFA Reauthentication by Backup code
78
- #
79
- # @return Complete user Multi-Factor Authentication Token data
80
- # 14.5
81
- def mfa_re_authenticate_by_backup_code(access_token, reauth_by_backup_code_model)
82
- if isNullOrWhiteSpace(access_token)
83
- raise LoginRadius::Error.new, getValidationMessage('access_token')
84
- end
85
- if reauth_by_backup_code_model.blank?
86
- raise LoginRadius::Error.new, getValidationMessage('reauth_by_backup_code_model')
87
- end
88
-
89
- query_parameters = {}
90
- query_parameters['access_token'] = access_token
91
- query_parameters['apiKey'] = @api_key
92
-
93
- resource_path = 'identity/v2/auth/account/reauth/2fa/backupcode'
94
- put_request(resource_path, query_parameters, reauth_by_backup_code_model)
95
- end
96
-
97
- # This API is used to re-authenticate via Multi-factor-authentication by passing the google authenticator code
98
- #
99
- # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
100
- # @param reauth_by_google_authenticator_code_model - Model Class containing Definition for MFA Reauthentication by Google Authenticator
101
- #
102
- # @return Complete user Multi-Factor Authentication Token data
103
- # 14.6
104
- def mfa_re_authenticate_by_google_auth(access_token, reauth_by_google_authenticator_code_model)
105
- if isNullOrWhiteSpace(access_token)
106
- raise LoginRadius::Error.new, getValidationMessage('access_token')
107
- end
108
- if reauth_by_google_authenticator_code_model.blank?
109
- raise LoginRadius::Error.new, getValidationMessage('reauth_by_google_authenticator_code_model')
110
- end
111
-
112
- query_parameters = {}
113
- query_parameters['access_token'] = access_token
114
- query_parameters['apiKey'] = @api_key
115
-
116
- resource_path = 'identity/v2/auth/account/reauth/2fa/googleauthenticatorcode'
117
- put_request(resource_path, query_parameters, reauth_by_google_authenticator_code_model)
118
- end
119
-
120
- # This API is used to re-authenticate via Multi-factor-authentication by passing the password
121
- #
122
- # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
123
- # @param password_event_based_auth_model_with_lockout - Model Class containing Definition of payload for PasswordEventBasedAuthModel with Lockout API
124
- # @param sms_template2_f_a - SMS Template Name
125
- #
126
- # @return Complete user Multi-Factor Authentication Token data
127
- # 14.7
128
- def mfa_re_authenticate_by_password(access_token, password_event_based_auth_model_with_lockout, sms_template2_f_a = '')
129
- if isNullOrWhiteSpace(access_token)
130
- raise LoginRadius::Error.new, getValidationMessage('access_token')
131
- end
132
- if password_event_based_auth_model_with_lockout.blank?
133
- raise LoginRadius::Error.new, getValidationMessage('password_event_based_auth_model_with_lockout')
134
- end
135
-
136
- query_parameters = {}
137
- query_parameters['access_token'] = access_token
138
- query_parameters['apiKey'] = @api_key
139
- unless isNullOrWhiteSpace(sms_template2_f_a)
140
- query_parameters['smsTemplate2FA'] = sms_template2_f_a
141
- end
142
-
143
- resource_path = 'identity/v2/auth/account/reauth/password'
144
- put_request(resource_path, query_parameters, password_event_based_auth_model_with_lockout)
145
- end
146
-
147
- # This API is used on the server-side to validate and verify the re-authentication token created by the MFA re-authentication API. This API checks re-authentications created by OTP.
148
- #
149
- # @param event_based_multi_factor_token - Model Class containing Definition for SecondFactorValidationToken
150
- # @param uid - UID, the unified identifier for each user account
151
- #
152
- # @return Response containing Definition of Complete Validation data
153
- # 18.38
154
- def verify_multi_factor_otp_reauthentication(event_based_multi_factor_token, uid)
155
- if event_based_multi_factor_token.blank?
156
- raise LoginRadius::Error.new, getValidationMessage('event_based_multi_factor_token')
157
- end
158
- if isNullOrWhiteSpace(uid)
159
- raise LoginRadius::Error.new, getValidationMessage('uid')
160
- end
161
-
162
- query_parameters = {}
163
- query_parameters['apiKey'] = @api_key
164
- query_parameters['apiSecret'] = @api_secret
165
-
166
- resource_path = 'identity/v2/manage/account/' + uid + '/reauth/2fa'
167
- post_request(resource_path, query_parameters, event_based_multi_factor_token)
168
- end
169
-
170
- # This API is used on the server-side to validate and verify the re-authentication token created by the MFA re-authentication API. This API checks re-authentications created by password.
171
- #
172
- # @param event_based_multi_factor_token - Model Class containing Definition for SecondFactorValidationToken
173
- # @param uid - UID, the unified identifier for each user account
174
- #
175
- # @return Response containing Definition of Complete Validation data
176
- # 18.39
177
- def verify_multi_factor_password_reauthentication(event_based_multi_factor_token, uid)
178
- if event_based_multi_factor_token.blank?
179
- raise LoginRadius::Error.new, getValidationMessage('event_based_multi_factor_token')
180
- end
181
- if isNullOrWhiteSpace(uid)
182
- raise LoginRadius::Error.new, getValidationMessage('uid')
183
- end
184
-
185
- query_parameters = {}
186
- query_parameters['apiKey'] = @api_key
187
- query_parameters['apiSecret'] = @api_secret
188
-
189
- resource_path = 'identity/v2/manage/account/' + uid + '/reauth/password'
190
- post_request(resource_path, query_parameters, event_based_multi_factor_token)
191
- end
192
-
193
- # This API is used on the server-side to validate and verify the re-authentication token created by the MFA re-authentication API. This API checks re-authentications created by PIN.
194
- #
195
- # @param event_based_multi_factor_token - Model Class containing Definition for SecondFactorValidationToken
196
- # @param uid - UID, the unified identifier for each user account
197
- #
198
- # @return Response containing Definition of Complete Validation data
199
- # 18.40
200
- def verify_multi_factor_pin_reauthentication(event_based_multi_factor_token, uid)
201
- if event_based_multi_factor_token.blank?
202
- raise LoginRadius::Error.new, getValidationMessage('event_based_multi_factor_token')
203
- end
204
- if isNullOrWhiteSpace(uid)
205
- raise LoginRadius::Error.new, getValidationMessage('uid')
206
- end
207
-
208
- query_parameters = {}
209
- query_parameters['apiKey'] = @api_key
210
- query_parameters['apiSecret'] = @api_secret
211
-
212
- resource_path = 'identity/v2/manage/account/' + uid + '/reauth/pin'
213
- post_request(resource_path, query_parameters, event_based_multi_factor_token)
214
- end
215
-
216
- # This API is used to validate the triggered MFA authentication flow with a password.
217
- #
218
- # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
219
- # @param pin_auth_event_based_auth_model_with_lockout - Model Class containing Definition of payload for PIN
220
- # @param sms_template2_f_a - SMS Template Name
221
- #
222
- # @return Response containing Definition response of MFA reauthentication
223
- # 42.13
224
- def verify_pin_authentication(access_token, pin_auth_event_based_auth_model_with_lockout, sms_template2_f_a = '')
225
- if isNullOrWhiteSpace(access_token)
226
- raise LoginRadius::Error.new, getValidationMessage('access_token')
227
- end
228
- if pin_auth_event_based_auth_model_with_lockout.blank?
229
- raise LoginRadius::Error.new, getValidationMessage('pin_auth_event_based_auth_model_with_lockout')
230
- end
231
-
232
- query_parameters = {}
233
- query_parameters['access_token'] = access_token
234
- query_parameters['apiKey'] = @api_key
235
- unless isNullOrWhiteSpace(sms_template2_f_a)
236
- query_parameters['smsTemplate2FA'] = sms_template2_f_a
237
- end
238
-
239
- resource_path = 'identity/v2/auth/account/reauth/pin'
240
- put_request(resource_path, query_parameters, pin_auth_event_based_auth_model_with_lockout)
241
- end
242
- end
243
- end
1
+ # frozen_string_literal: true
2
+
3
+ # Created by LoginRadius Development Team
4
+ # Copyright 2019 LoginRadius Inc. All rights reserved.
5
+ require_relative '../../request_client'
6
+
7
+ module LoginRadius
8
+ # ReAuthenticationApi module
9
+ class ReAuthenticationApi
10
+ include RequestClient
11
+
12
+ attr_accessor :site_name, :api_key, :api_secret
13
+
14
+ # Initializes a LoginRadius Account object with an apikey and secret
15
+ # Takes in a hash containing site_name(required), api_key(required), api_secret(required)
16
+ def initialize
17
+ @site_name = ENV['SITE_NAME']
18
+ @api_key = ENV['API_KEY']
19
+ @api_secret = ENV['API_SECRET']
20
+ raise LoginRadius::Error.new, "'site_name' is a required option for Account class initialization." \
21
+ unless @site_name != '' && @site_name != nil
22
+ raise LoginRadius::Error.new, "'api_key' is a required option for Account class initialization." \
23
+ unless @api_key != '' && @api_key != nil
24
+ raise LoginRadius::Error.new, "'api_secret is a required option for Account class initialization." \
25
+ unless @api_secret != '' && @api_secret != nil
26
+ end
27
+
28
+ # This API is used to trigger the Multi-Factor Autentication workflow for the provided access token
29
+ #
30
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
31
+ # @param sms_template2_f_a - SMS Template Name
32
+ #
33
+ # @return Response containing Definition of Complete Multi-Factor Authentication Settings data
34
+ # 14.3
35
+ def mfa_re_authenticate(access_token, sms_template2_f_a = '')
36
+ if isNullOrWhiteSpace(access_token)
37
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
38
+ end
39
+
40
+ query_parameters = {}
41
+ query_parameters['access_token'] = access_token
42
+ query_parameters['apiKey'] = @api_key
43
+ unless isNullOrWhiteSpace(sms_template2_f_a)
44
+ query_parameters['smsTemplate2FA'] = sms_template2_f_a
45
+ end
46
+
47
+ resource_path = 'identity/v2/auth/account/reauth/2fa'
48
+ get_request(resource_path, query_parameters, {})
49
+ end
50
+
51
+ # This API is used to re-authenticate via Multi-factor authentication by passing the One Time Password received via SMS
52
+ #
53
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
54
+ # @param reauth_by_otp_model - Model Class containing Definition for MFA Reauthentication by OTP
55
+ #
56
+ # @return Complete user Multi-Factor Authentication Token data
57
+ # 14.4
58
+ def mfa_re_authenticate_by_otp(access_token, reauth_by_otp_model)
59
+ if isNullOrWhiteSpace(access_token)
60
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
61
+ end
62
+ if reauth_by_otp_model.blank?
63
+ raise LoginRadius::Error.new, getValidationMessage('reauth_by_otp_model')
64
+ end
65
+
66
+ query_parameters = {}
67
+ query_parameters['access_token'] = access_token
68
+ query_parameters['apiKey'] = @api_key
69
+
70
+ resource_path = 'identity/v2/auth/account/reauth/2fa/otp'
71
+ put_request(resource_path, query_parameters, reauth_by_otp_model)
72
+ end
73
+
74
+ # This API is used to re-authenticate by set of backup codes via access token on the site that has Multi-factor authentication enabled in re-authentication for the user that does not have the device
75
+ #
76
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
77
+ # @param reauth_by_backup_code_model - Model Class containing Definition for MFA Reauthentication by Backup code
78
+ #
79
+ # @return Complete user Multi-Factor Authentication Token data
80
+ # 14.5
81
+ def mfa_re_authenticate_by_backup_code(access_token, reauth_by_backup_code_model)
82
+ if isNullOrWhiteSpace(access_token)
83
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
84
+ end
85
+ if reauth_by_backup_code_model.blank?
86
+ raise LoginRadius::Error.new, getValidationMessage('reauth_by_backup_code_model')
87
+ end
88
+
89
+ query_parameters = {}
90
+ query_parameters['access_token'] = access_token
91
+ query_parameters['apiKey'] = @api_key
92
+
93
+ resource_path = 'identity/v2/auth/account/reauth/2fa/backupcode'
94
+ put_request(resource_path, query_parameters, reauth_by_backup_code_model)
95
+ end
96
+
97
+ # This API is used to re-authenticate via Multi-factor-authentication by passing the google authenticator code
98
+ #
99
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
100
+ # @param reauth_by_google_authenticator_code_model - Model Class containing Definition for MFA Reauthentication by Google Authenticator
101
+ #
102
+ # @return Complete user Multi-Factor Authentication Token data
103
+ # 14.6
104
+ def mfa_re_authenticate_by_google_auth(access_token, reauth_by_google_authenticator_code_model)
105
+ if isNullOrWhiteSpace(access_token)
106
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
107
+ end
108
+ if reauth_by_google_authenticator_code_model.blank?
109
+ raise LoginRadius::Error.new, getValidationMessage('reauth_by_google_authenticator_code_model')
110
+ end
111
+
112
+ query_parameters = {}
113
+ query_parameters['access_token'] = access_token
114
+ query_parameters['apiKey'] = @api_key
115
+
116
+ resource_path = 'identity/v2/auth/account/reauth/2fa/googleauthenticatorcode'
117
+ put_request(resource_path, query_parameters, reauth_by_google_authenticator_code_model)
118
+ end
119
+
120
+ # This API is used to re-authenticate via Multi-factor-authentication by passing the password
121
+ #
122
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
123
+ # @param password_event_based_auth_model_with_lockout - Model Class containing Definition of payload for PasswordEventBasedAuthModel with Lockout API
124
+ # @param sms_template2_f_a - SMS Template Name
125
+ #
126
+ # @return Complete user Multi-Factor Authentication Token data
127
+ # 14.7
128
+ def mfa_re_authenticate_by_password(access_token, password_event_based_auth_model_with_lockout, sms_template2_f_a = '')
129
+ if isNullOrWhiteSpace(access_token)
130
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
131
+ end
132
+ if password_event_based_auth_model_with_lockout.blank?
133
+ raise LoginRadius::Error.new, getValidationMessage('password_event_based_auth_model_with_lockout')
134
+ end
135
+
136
+ query_parameters = {}
137
+ query_parameters['access_token'] = access_token
138
+ query_parameters['apiKey'] = @api_key
139
+ unless isNullOrWhiteSpace(sms_template2_f_a)
140
+ query_parameters['smsTemplate2FA'] = sms_template2_f_a
141
+ end
142
+
143
+ resource_path = 'identity/v2/auth/account/reauth/password'
144
+ put_request(resource_path, query_parameters, password_event_based_auth_model_with_lockout)
145
+ end
146
+
147
+ # This API is used on the server-side to validate and verify the re-authentication token created by the MFA re-authentication API. This API checks re-authentications created by OTP.
148
+ #
149
+ # @param event_based_multi_factor_token - Model Class containing Definition for SecondFactorValidationToken
150
+ # @param uid - UID, the unified identifier for each user account
151
+ #
152
+ # @return Response containing Definition of Complete Validation data
153
+ # 18.38
154
+ def verify_multi_factor_otp_reauthentication(event_based_multi_factor_token, uid)
155
+ if event_based_multi_factor_token.blank?
156
+ raise LoginRadius::Error.new, getValidationMessage('event_based_multi_factor_token')
157
+ end
158
+ if isNullOrWhiteSpace(uid)
159
+ raise LoginRadius::Error.new, getValidationMessage('uid')
160
+ end
161
+
162
+ query_parameters = {}
163
+ query_parameters['apiKey'] = @api_key
164
+ query_parameters['apiSecret'] = @api_secret
165
+
166
+ resource_path = 'identity/v2/manage/account/' + uid + '/reauth/2fa'
167
+ post_request(resource_path, query_parameters, event_based_multi_factor_token)
168
+ end
169
+
170
+ # This API is used on the server-side to validate and verify the re-authentication token created by the MFA re-authentication API. This API checks re-authentications created by password.
171
+ #
172
+ # @param event_based_multi_factor_token - Model Class containing Definition for SecondFactorValidationToken
173
+ # @param uid - UID, the unified identifier for each user account
174
+ #
175
+ # @return Response containing Definition of Complete Validation data
176
+ # 18.39
177
+ def verify_multi_factor_password_reauthentication(event_based_multi_factor_token, uid)
178
+ if event_based_multi_factor_token.blank?
179
+ raise LoginRadius::Error.new, getValidationMessage('event_based_multi_factor_token')
180
+ end
181
+ if isNullOrWhiteSpace(uid)
182
+ raise LoginRadius::Error.new, getValidationMessage('uid')
183
+ end
184
+
185
+ query_parameters = {}
186
+ query_parameters['apiKey'] = @api_key
187
+ query_parameters['apiSecret'] = @api_secret
188
+
189
+ resource_path = 'identity/v2/manage/account/' + uid + '/reauth/password'
190
+ post_request(resource_path, query_parameters, event_based_multi_factor_token)
191
+ end
192
+
193
+ # This API is used on the server-side to validate and verify the re-authentication token created by the MFA re-authentication API. This API checks re-authentications created by PIN.
194
+ #
195
+ # @param event_based_multi_factor_token - Model Class containing Definition for SecondFactorValidationToken
196
+ # @param uid - UID, the unified identifier for each user account
197
+ #
198
+ # @return Response containing Definition of Complete Validation data
199
+ # 18.40
200
+ def verify_multi_factor_pin_reauthentication(event_based_multi_factor_token, uid)
201
+ if event_based_multi_factor_token.blank?
202
+ raise LoginRadius::Error.new, getValidationMessage('event_based_multi_factor_token')
203
+ end
204
+ if isNullOrWhiteSpace(uid)
205
+ raise LoginRadius::Error.new, getValidationMessage('uid')
206
+ end
207
+
208
+ query_parameters = {}
209
+ query_parameters['apiKey'] = @api_key
210
+ query_parameters['apiSecret'] = @api_secret
211
+
212
+ resource_path = 'identity/v2/manage/account/' + uid + '/reauth/pin'
213
+ post_request(resource_path, query_parameters, event_based_multi_factor_token)
214
+ end
215
+
216
+ # This API is used to validate the triggered MFA authentication flow with a password.
217
+ #
218
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
219
+ # @param pin_auth_event_based_auth_model_with_lockout - Model Class containing Definition of payload for PIN
220
+ # @param sms_template2_f_a - SMS Template Name
221
+ #
222
+ # @return Response containing Definition response of MFA reauthentication
223
+ # 42.13
224
+ def verify_pin_authentication(access_token, pin_auth_event_based_auth_model_with_lockout, sms_template2_f_a = '')
225
+ if isNullOrWhiteSpace(access_token)
226
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
227
+ end
228
+ if pin_auth_event_based_auth_model_with_lockout.blank?
229
+ raise LoginRadius::Error.new, getValidationMessage('pin_auth_event_based_auth_model_with_lockout')
230
+ end
231
+
232
+ query_parameters = {}
233
+ query_parameters['access_token'] = access_token
234
+ query_parameters['apiKey'] = @api_key
235
+ unless isNullOrWhiteSpace(sms_template2_f_a)
236
+ query_parameters['smsTemplate2FA'] = sms_template2_f_a
237
+ end
238
+
239
+ resource_path = 'identity/v2/auth/account/reauth/pin'
240
+ put_request(resource_path, query_parameters, pin_auth_event_based_auth_model_with_lockout)
241
+ end
242
+
243
+ # This API is used to validate the triggered MFA authentication flow with an Email OTP.
244
+ #
245
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
246
+ # @param reauth_by_email_otp_model - payload
247
+ #
248
+ # @return Response containing Definition response of MFA reauthentication
249
+ # 42.14
250
+ def re_auth_validate_email_otp(access_token, reauth_by_email_otp_model)
251
+ if isNullOrWhiteSpace(access_token)
252
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
253
+ end
254
+ if reauth_by_email_otp_model.blank?
255
+ raise LoginRadius::Error.new, getValidationMessage('reauth_by_email_otp_model')
256
+ end
257
+
258
+ query_parameters = {}
259
+ query_parameters['access_token'] = access_token
260
+ query_parameters['apiKey'] = @api_key
261
+
262
+ resource_path = 'identity/v2/auth/account/reauth/2fa/otp/email/verify'
263
+ put_request(resource_path, query_parameters, reauth_by_email_otp_model)
264
+ end
265
+
266
+ # This API is used to send the MFA Email OTP to the email for Re-authentication
267
+ #
268
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
269
+ # @param email_id - EmailId
270
+ # @param email_template2_f_a - EmailTemplate2FA
271
+ #
272
+ # @return Response containing Definition of Complete Validation data
273
+ # 42.15
274
+ def re_auth_send_email_otp(access_token, email_id, email_template2_f_a = '')
275
+ if isNullOrWhiteSpace(access_token)
276
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
277
+ end
278
+ if isNullOrWhiteSpace(email_id)
279
+ raise LoginRadius::Error.new, getValidationMessage('email_id')
280
+ end
281
+
282
+ query_parameters = {}
283
+ query_parameters['access_token'] = access_token
284
+ query_parameters['apiKey'] = @api_key
285
+ query_parameters['emailId'] = email_id
286
+ unless isNullOrWhiteSpace(email_template2_f_a)
287
+ query_parameters['emailTemplate2FA'] = email_template2_f_a
288
+ end
289
+
290
+ resource_path = 'identity/v2/auth/account/reauth/2fa/otp/email'
291
+ get_request(resource_path, query_parameters, {})
292
+ end
293
+
294
+ # This API is used to validate the triggered MFA re-authentication flow with security questions answers.
295
+ #
296
+ # @param access_token - Uniquely generated identifier key by LoginRadius that is activated after successful authentication.
297
+ # @param security_question_answer_update_model - payload
298
+ #
299
+ # @return Response containing Definition response of MFA reauthentication
300
+ # 42.16
301
+ def re_auth_by_security_question(access_token, security_question_answer_update_model)
302
+ if isNullOrWhiteSpace(access_token)
303
+ raise LoginRadius::Error.new, getValidationMessage('access_token')
304
+ end
305
+ if security_question_answer_update_model.blank?
306
+ raise LoginRadius::Error.new, getValidationMessage('security_question_answer_update_model')
307
+ end
308
+
309
+ query_parameters = {}
310
+ query_parameters['access_token'] = access_token
311
+ query_parameters['apiKey'] = @api_key
312
+
313
+ resource_path = 'identity/v2/auth/account/reauth/2fa/securityquestionanswer/verify'
314
+ post_request(resource_path, query_parameters, security_question_answer_update_model)
315
+ end
316
+ end
317
+ end