descope 1.0.6 → 1.1.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/.github/workflows/ci.yaml +51 -12
- data/.github/workflows/publish-gem.yaml +6 -26
- data/.github/workflows/release-please.yaml +36 -0
- data/.gitignore +5 -2
- data/.release-please-manifest.json +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +21 -0
- data/Gemfile +8 -7
- data/Gemfile.lock +70 -56
- data/README.md +170 -51
- data/examples/ruby-on-rails-api/descope/Gemfile +8 -8
- data/examples/ruby-on-rails-api/descope/Gemfile.lock +1 -1
- data/examples/ruby-on-rails-api/descope/package-lock.json +203 -141
- data/examples/ruby-on-rails-api/descope/package.json +1 -1
- data/examples/ruby-on-rails-api/descope/yarn.lock +185 -87
- data/lib/descope/api/v1/auth/enchantedlink.rb +3 -1
- data/lib/descope/api/v1/auth/magiclink.rb +3 -1
- data/lib/descope/api/v1/auth/otp.rb +3 -1
- data/lib/descope/api/v1/auth/password.rb +6 -2
- data/lib/descope/api/v1/auth/totp.rb +3 -1
- data/lib/descope/api/v1/auth.rb +47 -12
- data/lib/descope/api/v1/management/common.rb +20 -5
- data/lib/descope/api/v1/management/sso_application.rb +236 -0
- data/lib/descope/api/v1/management/sso_settings.rb +2 -24
- data/lib/descope/api/v1/management/user.rb +151 -13
- data/lib/descope/api/v1/management.rb +2 -0
- data/lib/descope/api/v1/session.rb +37 -4
- data/lib/descope/mixins/common.rb +1 -0
- data/lib/descope/mixins/http.rb +60 -9
- data/lib/descope/mixins/initializer.rb +5 -2
- data/lib/descope/mixins/logging.rb +12 -4
- data/lib/descope/version.rb +1 -1
- data/spec/descope/api/v1/auth_spec.rb +29 -0
- data/spec/descope/api/v1/auth_token_extraction_spec.rb +126 -0
- data/spec/descope/api/v1/session_refresh_spec.rb +98 -0
- data/spec/factories/user.rb +1 -1
- data/spec/integration/lib.descope/api/v1/auth/enchantedlink_spec.rb +20 -22
- data/spec/integration/lib.descope/api/v1/auth/magiclink_spec.rb +6 -2
- data/spec/integration/lib.descope/api/v1/auth/otp_spec.rb +6 -2
- data/spec/integration/lib.descope/api/v1/auth/session_spec.rb +68 -0
- data/spec/integration/lib.descope/api/v1/auth/totp_spec.rb +6 -2
- data/spec/integration/lib.descope/api/v1/management/access_key_spec.rb +12 -1
- data/spec/integration/lib.descope/api/v1/management/audit_spec.rb +5 -3
- data/spec/integration/lib.descope/api/v1/management/authz_spec.rb +28 -5
- data/spec/integration/lib.descope/api/v1/management/flow_spec.rb +3 -1
- data/spec/integration/lib.descope/api/v1/management/permissions_spec.rb +22 -2
- data/spec/integration/lib.descope/api/v1/management/project_spec.rb +18 -2
- data/spec/integration/lib.descope/api/v1/management/roles_spec.rb +116 -36
- data/spec/integration/lib.descope/api/v1/management/user_spec.rb +74 -8
- data/spec/lib.descope/api/v1/auth/enchantedlink_spec.rb +11 -2
- data/spec/lib.descope/api/v1/auth/password_spec.rb +10 -1
- data/spec/lib.descope/api/v1/auth_spec.rb +167 -5
- data/spec/lib.descope/api/v1/cookie_domain_fix_integration_spec.rb +245 -0
- data/spec/lib.descope/api/v1/management/sso_application_spec.rb +217 -0
- data/spec/lib.descope/api/v1/management/sso_settings_spec.rb +2 -2
- data/spec/lib.descope/api/v1/management/user_spec.rb +134 -46
- data/spec/lib.descope/api/v1/session_spec.rb +119 -6
- data/spec/lib.descope/mixins/http_spec.rb +229 -0
- data/spec/support/client_config.rb +0 -1
- data/spec/support/utils.rb +21 -0
- metadata +14 -8
|
@@ -102,30 +102,150 @@
|
|
|
102
102
|
"@descope/web-js-sdk" "1.10.28"
|
|
103
103
|
tslib "2.6.2"
|
|
104
104
|
|
|
105
|
-
"@descope/web-js-sdk
|
|
106
|
-
version "1.10.
|
|
107
|
-
resolved "https://registry.npmjs.org/@descope/web-js-sdk/-/web-js-sdk-1.10.
|
|
108
|
-
integrity sha512-
|
|
105
|
+
"@descope/web-js-sdk@1.10.28":
|
|
106
|
+
version "1.10.28"
|
|
107
|
+
resolved "https://registry.npmjs.org/@descope/web-js-sdk/-/web-js-sdk-1.10.28.tgz"
|
|
108
|
+
integrity sha512-pBmNFX0B+laUWTQ97b99uSZVD+l1T5KftBAokvIVsvSLqnY0qBcz4HIoT/+8BlcBdP4BwPYUrjuTvlmP7i9NuQ==
|
|
109
109
|
dependencies:
|
|
110
110
|
"@descope/core-js-sdk" "2.12.0"
|
|
111
111
|
"@fingerprintjs/fingerprintjs-pro" "3.9.2"
|
|
112
112
|
js-cookie "3.0.5"
|
|
113
113
|
tslib "2.6.2"
|
|
114
114
|
|
|
115
|
-
"@descope/web-js-sdk
|
|
116
|
-
version "1.10.
|
|
117
|
-
resolved "https://registry.npmjs.org/@descope/web-js-sdk/-/web-js-sdk-1.10.
|
|
118
|
-
integrity sha512-
|
|
115
|
+
"@descope/web-js-sdk@>=1":
|
|
116
|
+
version "1.10.29"
|
|
117
|
+
resolved "https://registry.npmjs.org/@descope/web-js-sdk/-/web-js-sdk-1.10.29.tgz"
|
|
118
|
+
integrity sha512-423ORqAJSfLJfsCfctDwUCsgzSTeSdKaSiuwK1pE5eq4A9w+MFDh6k8wcCe0T2miLJast4ztHZg1ue4ArC4I6Q==
|
|
119
119
|
dependencies:
|
|
120
120
|
"@descope/core-js-sdk" "2.12.0"
|
|
121
121
|
"@fingerprintjs/fingerprintjs-pro" "3.9.2"
|
|
122
122
|
js-cookie "3.0.5"
|
|
123
123
|
tslib "2.6.2"
|
|
124
124
|
|
|
125
|
-
"@esbuild/
|
|
126
|
-
version "0.
|
|
127
|
-
resolved "https://registry.
|
|
128
|
-
integrity sha512-
|
|
125
|
+
"@esbuild/aix-ppc64@0.25.0":
|
|
126
|
+
version "0.25.0"
|
|
127
|
+
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz#499600c5e1757a524990d5d92601f0ac3ce87f64"
|
|
128
|
+
integrity sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==
|
|
129
|
+
|
|
130
|
+
"@esbuild/android-arm64@0.25.0":
|
|
131
|
+
version "0.25.0"
|
|
132
|
+
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz#b9b8231561a1dfb94eb31f4ee056b92a985c324f"
|
|
133
|
+
integrity sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==
|
|
134
|
+
|
|
135
|
+
"@esbuild/android-arm@0.25.0":
|
|
136
|
+
version "0.25.0"
|
|
137
|
+
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz#ca6e7888942505f13e88ac9f5f7d2a72f9facd2b"
|
|
138
|
+
integrity sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==
|
|
139
|
+
|
|
140
|
+
"@esbuild/android-x64@0.25.0":
|
|
141
|
+
version "0.25.0"
|
|
142
|
+
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz#e765ea753bac442dfc9cb53652ce8bd39d33e163"
|
|
143
|
+
integrity sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==
|
|
144
|
+
|
|
145
|
+
"@esbuild/darwin-arm64@0.25.0":
|
|
146
|
+
version "0.25.0"
|
|
147
|
+
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz#fa394164b0d89d4fdc3a8a21989af70ef579fa2c"
|
|
148
|
+
integrity sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==
|
|
149
|
+
|
|
150
|
+
"@esbuild/darwin-x64@0.25.0":
|
|
151
|
+
version "0.25.0"
|
|
152
|
+
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz#91979d98d30ba6e7d69b22c617cc82bdad60e47a"
|
|
153
|
+
integrity sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==
|
|
154
|
+
|
|
155
|
+
"@esbuild/freebsd-arm64@0.25.0":
|
|
156
|
+
version "0.25.0"
|
|
157
|
+
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz#b97e97073310736b430a07b099d837084b85e9ce"
|
|
158
|
+
integrity sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==
|
|
159
|
+
|
|
160
|
+
"@esbuild/freebsd-x64@0.25.0":
|
|
161
|
+
version "0.25.0"
|
|
162
|
+
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz#f3b694d0da61d9910ec7deff794d444cfbf3b6e7"
|
|
163
|
+
integrity sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==
|
|
164
|
+
|
|
165
|
+
"@esbuild/linux-arm64@0.25.0":
|
|
166
|
+
version "0.25.0"
|
|
167
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz#f921f699f162f332036d5657cad9036f7a993f73"
|
|
168
|
+
integrity sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==
|
|
169
|
+
|
|
170
|
+
"@esbuild/linux-arm@0.25.0":
|
|
171
|
+
version "0.25.0"
|
|
172
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz#cc49305b3c6da317c900688995a4050e6cc91ca3"
|
|
173
|
+
integrity sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==
|
|
174
|
+
|
|
175
|
+
"@esbuild/linux-ia32@0.25.0":
|
|
176
|
+
version "0.25.0"
|
|
177
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz#3e0736fcfab16cff042dec806247e2c76e109e19"
|
|
178
|
+
integrity sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==
|
|
179
|
+
|
|
180
|
+
"@esbuild/linux-loong64@0.25.0":
|
|
181
|
+
version "0.25.0"
|
|
182
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz#ea2bf730883cddb9dfb85124232b5a875b8020c7"
|
|
183
|
+
integrity sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==
|
|
184
|
+
|
|
185
|
+
"@esbuild/linux-mips64el@0.25.0":
|
|
186
|
+
version "0.25.0"
|
|
187
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz#4cababb14eede09248980a2d2d8b966464294ff1"
|
|
188
|
+
integrity sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==
|
|
189
|
+
|
|
190
|
+
"@esbuild/linux-ppc64@0.25.0":
|
|
191
|
+
version "0.25.0"
|
|
192
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz#8860a4609914c065373a77242e985179658e1951"
|
|
193
|
+
integrity sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==
|
|
194
|
+
|
|
195
|
+
"@esbuild/linux-riscv64@0.25.0":
|
|
196
|
+
version "0.25.0"
|
|
197
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz#baf26e20bb2d38cfb86ee282dff840c04f4ed987"
|
|
198
|
+
integrity sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==
|
|
199
|
+
|
|
200
|
+
"@esbuild/linux-s390x@0.25.0":
|
|
201
|
+
version "0.25.0"
|
|
202
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz#8323afc0d6cb1b6dc6e9fd21efd9e1542c3640a4"
|
|
203
|
+
integrity sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==
|
|
204
|
+
|
|
205
|
+
"@esbuild/linux-x64@0.25.0":
|
|
206
|
+
version "0.25.0"
|
|
207
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz#08fcf60cb400ed2382e9f8e0f5590bac8810469a"
|
|
208
|
+
integrity sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==
|
|
209
|
+
|
|
210
|
+
"@esbuild/netbsd-arm64@0.25.0":
|
|
211
|
+
version "0.25.0"
|
|
212
|
+
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz#935c6c74e20f7224918fbe2e6c6fe865b6c6ea5b"
|
|
213
|
+
integrity sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==
|
|
214
|
+
|
|
215
|
+
"@esbuild/netbsd-x64@0.25.0":
|
|
216
|
+
version "0.25.0"
|
|
217
|
+
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz#414677cef66d16c5a4d210751eb2881bb9c1b62b"
|
|
218
|
+
integrity sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==
|
|
219
|
+
|
|
220
|
+
"@esbuild/openbsd-arm64@0.25.0":
|
|
221
|
+
version "0.25.0"
|
|
222
|
+
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz#8fd55a4d08d25cdc572844f13c88d678c84d13f7"
|
|
223
|
+
integrity sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==
|
|
224
|
+
|
|
225
|
+
"@esbuild/openbsd-x64@0.25.0":
|
|
226
|
+
version "0.25.0"
|
|
227
|
+
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz#0c48ddb1494bbc2d6bcbaa1429a7f465fa1dedde"
|
|
228
|
+
integrity sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==
|
|
229
|
+
|
|
230
|
+
"@esbuild/sunos-x64@0.25.0":
|
|
231
|
+
version "0.25.0"
|
|
232
|
+
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz#86ff9075d77962b60dd26203d7352f92684c8c92"
|
|
233
|
+
integrity sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==
|
|
234
|
+
|
|
235
|
+
"@esbuild/win32-arm64@0.25.0":
|
|
236
|
+
version "0.25.0"
|
|
237
|
+
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz#849c62327c3229467f5b5cd681bf50588442e96c"
|
|
238
|
+
integrity sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==
|
|
239
|
+
|
|
240
|
+
"@esbuild/win32-ia32@0.25.0":
|
|
241
|
+
version "0.25.0"
|
|
242
|
+
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz#f62eb480cd7cca088cb65bb46a6db25b725dc079"
|
|
243
|
+
integrity sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==
|
|
244
|
+
|
|
245
|
+
"@esbuild/win32-x64@0.25.0":
|
|
246
|
+
version "0.25.0"
|
|
247
|
+
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz#c8e119a30a7c8d60b9d2e22d2073722dde3b710b"
|
|
248
|
+
integrity sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==
|
|
129
249
|
|
|
130
250
|
"@fingerprintjs/fingerprintjs-pro@3.9.2":
|
|
131
251
|
version "3.9.2"
|
|
@@ -177,25 +297,6 @@
|
|
|
177
297
|
resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz"
|
|
178
298
|
integrity sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==
|
|
179
299
|
|
|
180
|
-
"@types/prop-types@*":
|
|
181
|
-
version "15.7.11"
|
|
182
|
-
resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz"
|
|
183
|
-
integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==
|
|
184
|
-
|
|
185
|
-
"@types/react@>=17":
|
|
186
|
-
version "18.2.48"
|
|
187
|
-
resolved "https://registry.npmjs.org/@types/react/-/react-18.2.48.tgz"
|
|
188
|
-
integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==
|
|
189
|
-
dependencies:
|
|
190
|
-
"@types/prop-types" "*"
|
|
191
|
-
"@types/scheduler" "*"
|
|
192
|
-
csstype "^3.0.2"
|
|
193
|
-
|
|
194
|
-
"@types/scheduler@*":
|
|
195
|
-
version "0.16.8"
|
|
196
|
-
resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz"
|
|
197
|
-
integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==
|
|
198
|
-
|
|
199
300
|
abbrev@1:
|
|
200
301
|
version "1.1.1"
|
|
201
302
|
resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
|
|
@@ -230,21 +331,21 @@ bootstrap@^5.3.3:
|
|
|
230
331
|
integrity sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==
|
|
231
332
|
|
|
232
333
|
brace-expansion@^1.1.7:
|
|
233
|
-
version "1.1.
|
|
234
|
-
resolved "https://registry.
|
|
235
|
-
integrity sha512-
|
|
334
|
+
version "1.1.12"
|
|
335
|
+
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
|
|
336
|
+
integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
|
|
236
337
|
dependencies:
|
|
237
338
|
balanced-match "^1.0.0"
|
|
238
339
|
concat-map "0.0.1"
|
|
239
340
|
|
|
240
341
|
braces@~3.0.2:
|
|
241
|
-
version "3.0.
|
|
242
|
-
resolved "https://registry.
|
|
243
|
-
integrity sha512-
|
|
342
|
+
version "3.0.3"
|
|
343
|
+
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
|
|
344
|
+
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
|
|
244
345
|
dependencies:
|
|
245
|
-
fill-range "^7.
|
|
346
|
+
fill-range "^7.1.1"
|
|
246
347
|
|
|
247
|
-
|
|
348
|
+
"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2:
|
|
248
349
|
version "3.6.0"
|
|
249
350
|
resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
|
|
250
351
|
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
|
|
@@ -264,11 +365,6 @@ concat-map@0.0.1:
|
|
|
264
365
|
resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
|
|
265
366
|
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
|
266
367
|
|
|
267
|
-
csstype@^3.0.2:
|
|
268
|
-
version "3.1.3"
|
|
269
|
-
resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
|
|
270
|
-
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
|
|
271
|
-
|
|
272
368
|
debug@^4:
|
|
273
369
|
version "4.3.4"
|
|
274
370
|
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
|
|
@@ -276,16 +372,16 @@ debug@^4:
|
|
|
276
372
|
dependencies:
|
|
277
373
|
ms "2.1.2"
|
|
278
374
|
|
|
279
|
-
dotenv@^16.4.5:
|
|
280
|
-
version "16.4.5"
|
|
281
|
-
resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz"
|
|
282
|
-
integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
|
|
283
|
-
|
|
284
375
|
dotenv@16.0.3:
|
|
285
376
|
version "16.0.3"
|
|
286
377
|
resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz"
|
|
287
378
|
integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
|
|
288
379
|
|
|
380
|
+
dotenv@^16.4.5:
|
|
381
|
+
version "16.4.5"
|
|
382
|
+
resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz"
|
|
383
|
+
integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
|
|
384
|
+
|
|
289
385
|
env@^0.0.2:
|
|
290
386
|
version "0.0.2"
|
|
291
387
|
resolved "https://registry.npmjs.org/env/-/env-0.0.2.tgz"
|
|
@@ -298,39 +394,41 @@ esbuild-envfile-plugin@^1.0.5:
|
|
|
298
394
|
dependencies:
|
|
299
395
|
dotenv "16.0.3"
|
|
300
396
|
|
|
301
|
-
esbuild@^0.
|
|
302
|
-
version "0.
|
|
303
|
-
resolved "https://registry.
|
|
304
|
-
integrity sha512-
|
|
397
|
+
esbuild@^0.25.0:
|
|
398
|
+
version "0.25.0"
|
|
399
|
+
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.0.tgz#0de1787a77206c5a79eeb634a623d39b5006ce92"
|
|
400
|
+
integrity sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==
|
|
305
401
|
optionalDependencies:
|
|
306
|
-
"@esbuild/aix-ppc64" "0.
|
|
307
|
-
"@esbuild/android-arm" "0.
|
|
308
|
-
"@esbuild/android-arm64" "0.
|
|
309
|
-
"@esbuild/android-x64" "0.
|
|
310
|
-
"@esbuild/darwin-arm64" "0.
|
|
311
|
-
"@esbuild/darwin-x64" "0.
|
|
312
|
-
"@esbuild/freebsd-arm64" "0.
|
|
313
|
-
"@esbuild/freebsd-x64" "0.
|
|
314
|
-
"@esbuild/linux-arm" "0.
|
|
315
|
-
"@esbuild/linux-arm64" "0.
|
|
316
|
-
"@esbuild/linux-ia32" "0.
|
|
317
|
-
"@esbuild/linux-loong64" "0.
|
|
318
|
-
"@esbuild/linux-mips64el" "0.
|
|
319
|
-
"@esbuild/linux-ppc64" "0.
|
|
320
|
-
"@esbuild/linux-riscv64" "0.
|
|
321
|
-
"@esbuild/linux-s390x" "0.
|
|
322
|
-
"@esbuild/linux-x64" "0.
|
|
323
|
-
"@esbuild/netbsd-
|
|
324
|
-
"@esbuild/
|
|
325
|
-
"@esbuild/
|
|
326
|
-
"@esbuild/
|
|
327
|
-
"@esbuild/
|
|
328
|
-
"@esbuild/win32-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
402
|
+
"@esbuild/aix-ppc64" "0.25.0"
|
|
403
|
+
"@esbuild/android-arm" "0.25.0"
|
|
404
|
+
"@esbuild/android-arm64" "0.25.0"
|
|
405
|
+
"@esbuild/android-x64" "0.25.0"
|
|
406
|
+
"@esbuild/darwin-arm64" "0.25.0"
|
|
407
|
+
"@esbuild/darwin-x64" "0.25.0"
|
|
408
|
+
"@esbuild/freebsd-arm64" "0.25.0"
|
|
409
|
+
"@esbuild/freebsd-x64" "0.25.0"
|
|
410
|
+
"@esbuild/linux-arm" "0.25.0"
|
|
411
|
+
"@esbuild/linux-arm64" "0.25.0"
|
|
412
|
+
"@esbuild/linux-ia32" "0.25.0"
|
|
413
|
+
"@esbuild/linux-loong64" "0.25.0"
|
|
414
|
+
"@esbuild/linux-mips64el" "0.25.0"
|
|
415
|
+
"@esbuild/linux-ppc64" "0.25.0"
|
|
416
|
+
"@esbuild/linux-riscv64" "0.25.0"
|
|
417
|
+
"@esbuild/linux-s390x" "0.25.0"
|
|
418
|
+
"@esbuild/linux-x64" "0.25.0"
|
|
419
|
+
"@esbuild/netbsd-arm64" "0.25.0"
|
|
420
|
+
"@esbuild/netbsd-x64" "0.25.0"
|
|
421
|
+
"@esbuild/openbsd-arm64" "0.25.0"
|
|
422
|
+
"@esbuild/openbsd-x64" "0.25.0"
|
|
423
|
+
"@esbuild/sunos-x64" "0.25.0"
|
|
424
|
+
"@esbuild/win32-arm64" "0.25.0"
|
|
425
|
+
"@esbuild/win32-ia32" "0.25.0"
|
|
426
|
+
"@esbuild/win32-x64" "0.25.0"
|
|
427
|
+
|
|
428
|
+
fill-range@^7.1.1:
|
|
429
|
+
version "7.1.1"
|
|
430
|
+
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
|
|
431
|
+
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
|
|
334
432
|
dependencies:
|
|
335
433
|
to-regex-range "^5.0.1"
|
|
336
434
|
|
|
@@ -474,7 +572,7 @@ pstree.remy@^1.1.8:
|
|
|
474
572
|
resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz"
|
|
475
573
|
integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
|
|
476
574
|
|
|
477
|
-
react-dom@^18.2.0
|
|
575
|
+
react-dom@^18.2.0:
|
|
478
576
|
version "18.2.0"
|
|
479
577
|
resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz"
|
|
480
578
|
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
|
|
@@ -497,7 +595,7 @@ react-router@6.22.3:
|
|
|
497
595
|
dependencies:
|
|
498
596
|
"@remix-run/router" "1.15.3"
|
|
499
597
|
|
|
500
|
-
|
|
598
|
+
react@^18.2.0:
|
|
501
599
|
version "18.2.0"
|
|
502
600
|
resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
|
|
503
601
|
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
|
|
@@ -511,17 +609,17 @@ readdirp@~3.6.0:
|
|
|
511
609
|
dependencies:
|
|
512
610
|
picomatch "^2.2.1"
|
|
513
611
|
|
|
514
|
-
redux-thunk
|
|
612
|
+
redux-thunk@3.1.0, redux-thunk@^3.1.0:
|
|
515
613
|
version "3.1.0"
|
|
516
614
|
resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz"
|
|
517
615
|
integrity sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==
|
|
518
616
|
|
|
519
|
-
redux
|
|
617
|
+
redux@5.0.1, redux@^5.0.1:
|
|
520
618
|
version "5.0.1"
|
|
521
619
|
resolved "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz"
|
|
522
620
|
integrity sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==
|
|
523
621
|
|
|
524
|
-
reselect
|
|
622
|
+
reselect@5.1.0, reselect@^5.0.1:
|
|
525
623
|
version "5.1.0"
|
|
526
624
|
resolved "https://registry.npmjs.org/reselect/-/reselect-5.1.0.tgz"
|
|
527
625
|
integrity sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg==
|
|
@@ -582,7 +680,7 @@ touch@^3.1.0:
|
|
|
582
680
|
dependencies:
|
|
583
681
|
nopt "~1.0.10"
|
|
584
682
|
|
|
585
|
-
tslib
|
|
683
|
+
tslib@2.6.2, tslib@^2.4.1:
|
|
586
684
|
version "2.6.2"
|
|
587
685
|
resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
|
|
588
686
|
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
|
|
@@ -67,7 +67,9 @@ module Descope
|
|
|
67
67
|
def enchanted_link_get_session(pending_ref = nil)
|
|
68
68
|
# @see https://docs.descope.com/api/openapi/enchantedlink/operation/GetEnchantedLinkSession/
|
|
69
69
|
res = post(GET_SESSION_ENCHANTEDLINK_AUTH_PATH, { pendingRef: pending_ref })
|
|
70
|
-
|
|
70
|
+
cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
|
|
71
|
+
refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
|
|
72
|
+
generate_jwt_response(response_body: res, refresh_cookie:)
|
|
71
73
|
end
|
|
72
74
|
|
|
73
75
|
private
|
|
@@ -42,7 +42,9 @@ module Descope
|
|
|
42
42
|
def magiclink_verify_token(token = nil)
|
|
43
43
|
validate_token_not_empty(token)
|
|
44
44
|
res = post(VERIFY_MAGICLINK_AUTH_PATH, { token: })
|
|
45
|
-
|
|
45
|
+
cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
|
|
46
|
+
refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
|
|
47
|
+
generate_jwt_response(response_body: res, refresh_cookie:)
|
|
46
48
|
end
|
|
47
49
|
|
|
48
50
|
def magiclink_update_user_email(login_id: nil, email: nil, uri: nil, add_to_login_ids: nil, on_merge_use_existing: nil, provider_id: nil, template_id: nil, template_options: nil, refresh_token: nil)
|
|
@@ -63,7 +63,9 @@ module Descope
|
|
|
63
63
|
code:
|
|
64
64
|
}
|
|
65
65
|
res = post(uri, request_params)
|
|
66
|
-
|
|
66
|
+
cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
|
|
67
|
+
refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
|
|
68
|
+
generate_jwt_response(response_body: res, refresh_cookie:)
|
|
67
69
|
end
|
|
68
70
|
|
|
69
71
|
def otp_update_user_email(login_id: nil, email: nil, refresh_token: nil, add_to_login_ids: false,
|
|
@@ -22,7 +22,9 @@ module Descope
|
|
|
22
22
|
|
|
23
23
|
request_params[:user] = password_user_compose_update_body(**user) unless user.nil?
|
|
24
24
|
res = post(SIGN_UP_PASSWORD_PATH, request_params)
|
|
25
|
-
|
|
25
|
+
cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
|
|
26
|
+
refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
|
|
27
|
+
generate_jwt_response(response_body: res, refresh_cookie:)
|
|
26
28
|
end
|
|
27
29
|
|
|
28
30
|
def password_sign_in(login_id: nil, password: nil, sso_app_id: nil)
|
|
@@ -38,7 +40,9 @@ module Descope
|
|
|
38
40
|
ssoAppId: sso_app_id
|
|
39
41
|
}
|
|
40
42
|
res = post(SIGN_IN_PASSWORD_PATH, request_params)
|
|
41
|
-
|
|
43
|
+
cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
|
|
44
|
+
refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
|
|
45
|
+
generate_jwt_response(response_body: res, refresh_cookie:)
|
|
42
46
|
end
|
|
43
47
|
|
|
44
48
|
def password_replace(login_id: nil, old_password: nil, new_password: nil)
|
|
@@ -17,7 +17,9 @@ module Descope
|
|
|
17
17
|
uri = VERIFY_TOTP_PATH
|
|
18
18
|
body = totp_compose_signin_body(login_id, code, login_options)
|
|
19
19
|
res = post(uri, body, {}, nil)
|
|
20
|
-
|
|
20
|
+
cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
|
|
21
|
+
refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
|
|
22
|
+
generate_jwt_response(response_body: res, refresh_cookie:)
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
def totp_sign_up(login_id: nil, user: nil, sso_app_id: nil)
|
data/lib/descope/api/v1/auth.rb
CHANGED
|
@@ -34,7 +34,6 @@ module Descope
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
jwt_response = generate_auth_info(response_body, refresh_cookie, true, audience)
|
|
37
|
-
@logger.debug "jwt_response: #{jwt_response}"
|
|
38
37
|
jwt_response['user'] = response_body.key?('user') ? response_body['user'] : {}
|
|
39
38
|
jwt_response['firstSeen'] = response_body.key?('firstSeen') ? response_body['firstSeen'] : true
|
|
40
39
|
|
|
@@ -54,7 +53,7 @@ module Descope
|
|
|
54
53
|
raise AuthException.new('Access key should be a string!', code: 400)
|
|
55
54
|
end
|
|
56
55
|
|
|
57
|
-
res = post(EXCHANGE_AUTH_ACCESS_KEY_PATH, { loginOptions: login_options, audience: }, {}, access_key)
|
|
56
|
+
res = post(EXCHANGE_AUTH_ACCESS_KEY_PATH, { loginOptions: login_options, audience: audience }, {}, access_key)
|
|
58
57
|
generate_auth_info(res, nil, false, audience)
|
|
59
58
|
end
|
|
60
59
|
|
|
@@ -62,6 +61,8 @@ module Descope
|
|
|
62
61
|
validate_refresh_token_not_nil(refresh_token)
|
|
63
62
|
res = post(SELECT_TENANT_PATH, { tenantId: tenant_id }, {}, refresh_token)
|
|
64
63
|
@logger.debug "select_tenant response: #{res}"
|
|
64
|
+
cookies = res.fetch('cookies')
|
|
65
|
+
generate_jwt_response(response_body: res, refresh_cookie: cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil))
|
|
65
66
|
generate_jwt_response(
|
|
66
67
|
response_body: res,
|
|
67
68
|
refresh_cookie: res['refreshJwt']
|
|
@@ -71,7 +72,7 @@ module Descope
|
|
|
71
72
|
def validate_permissions(jwt_response: nil, permissions: nil)
|
|
72
73
|
# Validate that a jwt_response has been granted the specified permissions.
|
|
73
74
|
# For a multi-tenant environment use validate_tenant_permissions function
|
|
74
|
-
validate_tenant_permissions(jwt_response
|
|
75
|
+
validate_tenant_permissions(jwt_response: jwt_response, permissions: permissions)
|
|
75
76
|
end
|
|
76
77
|
|
|
77
78
|
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/AbcSize, Metrics/MethodLength
|
|
@@ -122,7 +123,7 @@ module Descope
|
|
|
122
123
|
def validate_roles(jwt_response: nil, roles: nil)
|
|
123
124
|
# Validate that a jwt_response has been granted the specified roles.
|
|
124
125
|
# For a multi-tenant environment use validate_tenant_roles function
|
|
125
|
-
validate_tenant_roles(jwt_response
|
|
126
|
+
validate_tenant_roles(jwt_response: jwt_response, tenant: '', roles: roles)
|
|
126
127
|
end
|
|
127
128
|
|
|
128
129
|
def validate_tenant_roles(jwt_response: nil, tenant: nil, roles: nil)
|
|
@@ -231,24 +232,58 @@ module Descope
|
|
|
231
232
|
private
|
|
232
233
|
|
|
233
234
|
def generate_auth_info(response_body, refresh_token, user_jwt, audience = nil)
|
|
234
|
-
@logger.debug "generating auth info: #{response_body}, #{refresh_token}, #{user_jwt}, #{audience}"
|
|
235
|
+
@logger.debug "generating auth info: response_body: #{response_body}, refresh_token: #{refresh_token}, user_jwt: #{user_jwt}, audience: #{audience}"
|
|
235
236
|
jwt_response = {}
|
|
236
237
|
|
|
237
238
|
# validate the session token if sessionJwt is not empty
|
|
238
239
|
st_jwt = response_body.fetch('sessionJwt', '')
|
|
239
240
|
unless st_jwt.empty?
|
|
240
|
-
@logger.debug
|
|
241
|
-
jwt_response[SESSION_TOKEN_NAME] = validate_token(st_jwt, audience)
|
|
241
|
+
@logger.debug 'found sessionJwt in response body, adding to jwt_response'
|
|
242
|
+
jwt_response[SESSION_TOKEN_NAME] = validate_token(st_jwt, audience)
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
# Check for session token in cookies if not found in response body
|
|
246
|
+
cookies = response_body.fetch('cookies', {})
|
|
247
|
+
if jwt_response[SESSION_TOKEN_NAME].nil?
|
|
248
|
+
cookies.each do |cookie_name, cookie_value|
|
|
249
|
+
if cookie_name == SESSION_COOKIE_NAME
|
|
250
|
+
@logger.debug "found session token in cookies with name #{cookie_name}, adding to jwt_response"
|
|
251
|
+
jwt_response[SESSION_TOKEN_NAME] = validate_token(cookie_value, audience)
|
|
252
|
+
break
|
|
253
|
+
end
|
|
254
|
+
end
|
|
242
255
|
end
|
|
243
256
|
|
|
244
257
|
# validate refresh token if refresh_token was passed or if refreshJwt is not empty
|
|
245
258
|
rt_jwt = response_body.fetch('refreshJwt', '')
|
|
246
259
|
|
|
247
|
-
if !
|
|
248
|
-
@logger.debug
|
|
249
|
-
|
|
250
|
-
elsif !rt_jwt.empty?
|
|
260
|
+
if !rt_jwt.empty?
|
|
261
|
+
@logger.debug 'found refreshJwt in response body, adding to jwt_response'
|
|
262
|
+
@logger.debug 'validating refreshJwt token...'
|
|
251
263
|
jwt_response[REFRESH_SESSION_TOKEN_NAME] = validate_token(rt_jwt, audience)
|
|
264
|
+
else
|
|
265
|
+
# Check cookies for refresh token
|
|
266
|
+
refresh_cookie_found = false
|
|
267
|
+
cookies.each do |cookie_name, cookie_value|
|
|
268
|
+
if cookie_name == REFRESH_SESSION_COOKIE_NAME && !cookie_value.to_s.empty?
|
|
269
|
+
@logger.debug "found refresh token in cookies with name #{cookie_name}, adding to jwt_response"
|
|
270
|
+
jwt_response[REFRESH_SESSION_TOKEN_NAME] = validate_token(cookie_value, audience)
|
|
271
|
+
refresh_cookie_found = true
|
|
272
|
+
break
|
|
273
|
+
end
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
# If not found in cookies, check if refresh_token parameter was passed
|
|
277
|
+
if !refresh_cookie_found && refresh_token && !refresh_token.to_s.empty?
|
|
278
|
+
@logger.debug 'refresh token not found in cookies, but refresh_token was passed, adding to jwt_response'
|
|
279
|
+
@logger.debug 'validating passed-in refresh token...'
|
|
280
|
+
jwt_response[REFRESH_SESSION_TOKEN_NAME] = validate_token(refresh_token, audience)
|
|
281
|
+
end
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
if jwt_response[REFRESH_SESSION_TOKEN_NAME].nil?
|
|
285
|
+
@logger.debug "Error: Could not find refreshJwt in response body: #{response_body} / cookies: #{cookies} / passed in refresh_token ->#{refresh_token}<-"
|
|
286
|
+
raise Descope::AuthException.new('Could not find refreshJwt in response body / cookies / passed in refresh_token', code: 500)
|
|
252
287
|
end
|
|
253
288
|
|
|
254
289
|
jwt_response = adjust_properties(jwt_response, user_jwt)
|
|
@@ -452,7 +487,7 @@ module Descope
|
|
|
452
487
|
def exchange_token(uri, code)
|
|
453
488
|
raise Descope::ArgumentException.new("Code can't be empty", code: 400) if code.nil? || code.empty?
|
|
454
489
|
|
|
455
|
-
res = post(uri, { code: })
|
|
490
|
+
res = post(uri, { code: code })
|
|
456
491
|
generate_jwt_response(
|
|
457
492
|
response_body: res,
|
|
458
493
|
refresh_cookie: res['refreshJwt']
|
|
@@ -17,6 +17,7 @@ module Descope
|
|
|
17
17
|
|
|
18
18
|
# user
|
|
19
19
|
USER_CREATE_PATH = '/v1/mgmt/user/create'
|
|
20
|
+
TEST_USER_CREATE_PATH = '/v1/mgmt/user/create/test'
|
|
20
21
|
USER_CREATE_BATCH_PATH = '/v1/mgmt/user/create/batch'
|
|
21
22
|
USER_UPDATE_PATH = '/v1/mgmt/user/update'
|
|
22
23
|
USER_DELETE_PATH = '/v1/mgmt/user/delete'
|
|
@@ -37,6 +38,8 @@ module Descope
|
|
|
37
38
|
USER_SET_TEMPORARY_PASSWORD_PATH = '/v1/mgmt/user/password/set/temporary'
|
|
38
39
|
USER_SET_ACTIVE_PASSWORD_PATH = '/v1/mgmt/user/password/set/active'
|
|
39
40
|
USER_SET_PASSWORD_PATH = '/v1/mgmt/user/password/set'
|
|
41
|
+
USER_SEARCH_PATH = "/v2/mgmt/user/search"
|
|
42
|
+
TEST_USERS_SEARCH_PATH = "/v2/mgmt/user/search/test"
|
|
40
43
|
USER_EXPIRE_PASSWORD_PATH = '/v1/mgmt/user/password/expire'
|
|
41
44
|
USER_ADD_TENANT_PATH = '/v1/mgmt/user/update/tenant/add'
|
|
42
45
|
USER_REMOVE_TENANT_PATH = '/v1/mgmt/user/update/tenant/remove'
|
|
@@ -44,6 +47,7 @@ module Descope
|
|
|
44
47
|
USER_GENERATE_MAGIC_LINK_FOR_TEST_PATH = '/v1/mgmt/tests/generate/magiclink'
|
|
45
48
|
USER_GENERATE_ENCHANTED_LINK_FOR_TEST_PATH = '/v1/mgmt/tests/generate/enchantedlink'
|
|
46
49
|
USER_GENERATE_EMBEDDED_LINK_PATH = '/v1/mgmt/user/signin/embeddedlink'
|
|
50
|
+
USER_PATCH_PATH = '/v1/mgmt/user/patch'
|
|
47
51
|
|
|
48
52
|
# access key
|
|
49
53
|
ACCESS_KEY_CREATE_PATH = '/v1/mgmt/accesskey/create'
|
|
@@ -54,13 +58,24 @@ module Descope
|
|
|
54
58
|
ACCESS_KEY_ACTIVATE_PATH = '/v1/mgmt/accesskey/activate'
|
|
55
59
|
ACCESS_KEY_DELETE_PATH = '/v1/mgmt/accesskey/delete'
|
|
56
60
|
|
|
57
|
-
# sso
|
|
61
|
+
# sso application
|
|
62
|
+
SSO_APPLICATION_OIDC_CREATE_PATH = '/v1/mgmt/sso/idp/app/oidc/create'
|
|
63
|
+
SSO_APPLICATION_SAML_CREATE_PATH = '/v1/mgmt/sso/idp/app/saml/create'
|
|
64
|
+
SSO_APPLICATION_OIDC_UPDATE_PATH = '/v1/mgmt/sso/idp/app/oidc/update'
|
|
65
|
+
SSO_APPLICATION_SAML_UPDATE_PATH = '/v1/mgmt/sso/idp/app/saml/update'
|
|
66
|
+
SSO_APPLICATION_DELETE_PATH = '/v1/mgmt/sso/idp/app/delete'
|
|
67
|
+
SSO_APPLICATION_LOAD_PATH = '/v1/mgmt/sso/idp/app/load'
|
|
68
|
+
SSO_APPLICATION_LOAD_ALL_PATH = '/v1/mgmt/sso/idp/apps/load'
|
|
69
|
+
|
|
70
|
+
# sso settings
|
|
58
71
|
SSO_SETTINGS_PATH = '/v2/mgmt/sso/settings'
|
|
72
|
+
SSO_METADATA_PATH = '/v1/mgmt/sso/metadata'
|
|
73
|
+
SSO_MAPPING_PATH = '/v1/mgmt/sso/mapping'
|
|
74
|
+
SSO_LOAD_SETTINGS_PATH = '/v2/mgmt/sso/settings' # v2 only
|
|
59
75
|
SSO_OIDC_PATH = '/v1/mgmt/sso/oidc' # configure ssp settings via oidc
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
SSO_SAML_METADATA_PATH = '/v1/mgmt/sso/saml/metadata' # configure ssp settings via saml metadata
|
|
76
|
+
SSO_CONFIGURE_OIDC_SETTINGS_PATH = '/v1/mgmt/sso/oidc'
|
|
77
|
+
SSO_CONFIGURE_SAML_SETTINGS_PATH = '/v1/mgmt/sso/saml'
|
|
78
|
+
SSO_CONFIGURE_SAML_METADATA_PATH = '/v1/mgmt/sso/saml/metadata'
|
|
64
79
|
|
|
65
80
|
# SCIM
|
|
66
81
|
SCIM_GROUPS_PATH = '/scim/v2/Groups'
|