auth0 3.4.0 → 4.0.0-beta.1
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.
- package/README.md +19 -15
- package/dist/cjs/auth/base-auth-api.js +60 -0
- package/dist/cjs/auth/base-auth-api.js.map +1 -0
- package/dist/cjs/auth/client-authentication.js +64 -0
- package/dist/cjs/auth/client-authentication.js.map +1 -0
- package/dist/cjs/auth/database.js +73 -0
- package/dist/cjs/auth/database.js.map +1 -0
- package/dist/cjs/auth/id-token-validator.js +135 -0
- package/dist/cjs/auth/id-token-validator.js.map +1 -0
- package/dist/cjs/auth/index.js +40 -0
- package/dist/cjs/auth/index.js.map +1 -0
- package/dist/cjs/auth/oauth.js +199 -0
- package/dist/cjs/auth/oauth.js.map +1 -0
- package/dist/cjs/auth/passwordless.js +154 -0
- package/dist/cjs/auth/passwordless.js.map +1 -0
- package/dist/cjs/index.js +19 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/errors.js +49 -0
- package/dist/cjs/lib/errors.js.map +1 -0
- package/dist/cjs/lib/index.js +19 -0
- package/dist/cjs/lib/index.js.map +1 -0
- package/dist/cjs/lib/middleware/telemetry-middleware.js +27 -0
- package/dist/cjs/lib/middleware/telemetry-middleware.js.map +1 -0
- package/dist/cjs/lib/models.js +41 -0
- package/dist/cjs/lib/models.js.map +1 -0
- package/dist/cjs/lib/retry.js +55 -0
- package/dist/cjs/lib/retry.js.map +1 -0
- package/dist/cjs/lib/runtime.js +250 -0
- package/dist/cjs/lib/runtime.js.map +1 -0
- package/dist/cjs/management/__generated/index.js +58 -0
- package/dist/cjs/management/__generated/index.js.map +1 -0
- package/dist/cjs/management/__generated/managers/actions-manager.js +336 -0
- package/dist/cjs/management/__generated/managers/actions-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/anomaly-manager.js +63 -0
- package/dist/cjs/management/__generated/managers/anomaly-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/attack-protection-manager.js +131 -0
- package/dist/cjs/management/__generated/managers/attack-protection-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/blacklists-manager.js +76 -0
- package/dist/cjs/management/__generated/managers/blacklists-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/branding-manager.js +207 -0
- package/dist/cjs/management/__generated/managers/branding-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/client-grants-manager.js +114 -0
- package/dist/cjs/management/__generated/managers/client-grants-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/clients-manager.js +238 -0
- package/dist/cjs/management/__generated/managers/clients-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/connections-manager.js +193 -0
- package/dist/cjs/management/__generated/managers/connections-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/custom-domains-manager.js +179 -0
- package/dist/cjs/management/__generated/managers/custom-domains-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/device-credentials-manager.js +112 -0
- package/dist/cjs/management/__generated/managers/device-credentials-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/email-templates-manager.js +102 -0
- package/dist/cjs/management/__generated/managers/email-templates-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/emails-manager.js +102 -0
- package/dist/cjs/management/__generated/managers/emails-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/grants-manager.js +103 -0
- package/dist/cjs/management/__generated/managers/grants-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/guardian-manager.js +518 -0
- package/dist/cjs/management/__generated/managers/guardian-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/hooks-manager.js +214 -0
- package/dist/cjs/management/__generated/managers/hooks-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/index.js +48 -0
- package/dist/cjs/management/__generated/managers/index.js.map +1 -0
- package/dist/cjs/management/__generated/managers/jobs-manager.js +139 -0
- package/dist/cjs/management/__generated/managers/jobs-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/keys-manager.js +85 -0
- package/dist/cjs/management/__generated/managers/keys-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/log-streams-manager.js +392 -0
- package/dist/cjs/management/__generated/managers/log-streams-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/logs-manager.js +95 -0
- package/dist/cjs/management/__generated/managers/logs-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/organizations-manager.js +463 -0
- package/dist/cjs/management/__generated/managers/organizations-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/prompts-manager.js +101 -0
- package/dist/cjs/management/__generated/managers/prompts-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/resource-servers-manager.js +131 -0
- package/dist/cjs/management/__generated/managers/resource-servers-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/roles-manager.js +238 -0
- package/dist/cjs/management/__generated/managers/roles-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/rules-configs-manager.js +82 -0
- package/dist/cjs/management/__generated/managers/rules-configs-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/rules-manager.js +149 -0
- package/dist/cjs/management/__generated/managers/rules-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/stats-manager.js +72 -0
- package/dist/cjs/management/__generated/managers/stats-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/tenants-manager.js +76 -0
- package/dist/cjs/management/__generated/managers/tenants-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/tickets-manager.js +69 -0
- package/dist/cjs/management/__generated/managers/tickets-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/user-blocks-manager.js +123 -0
- package/dist/cjs/management/__generated/managers/user-blocks-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/users-by-email-manager.js +69 -0
- package/dist/cjs/management/__generated/managers/users-by-email-manager.js.map +1 -0
- package/dist/cjs/management/__generated/managers/users-manager.js +634 -0
- package/dist/cjs/management/__generated/managers/users-manager.js.map +1 -0
- package/dist/cjs/management/__generated/models/index.js +1581 -0
- package/dist/cjs/management/__generated/models/index.js.map +1 -0
- package/dist/cjs/management/index.js +20 -0
- package/dist/cjs/management/index.js.map +1 -0
- package/dist/cjs/management/management-client-options.js +3 -0
- package/dist/cjs/management/management-client-options.js.map +1 -0
- package/dist/cjs/management/management-client.js +54 -0
- package/dist/cjs/management/management-client.js.map +1 -0
- package/dist/cjs/management/token-provider-middleware.js +39 -0
- package/dist/cjs/management/token-provider-middleware.js.map +1 -0
- package/dist/cjs/management/token-provider.js +36 -0
- package/dist/cjs/management/token-provider.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/utils.js +16 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/cjs/version.js +5 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/auth/base-auth-api.js +55 -0
- package/dist/esm/auth/base-auth-api.js.map +1 -0
- package/dist/esm/auth/client-authentication.js +37 -0
- package/dist/esm/auth/client-authentication.js.map +1 -0
- package/dist/esm/auth/database.js +69 -0
- package/dist/esm/auth/database.js.map +1 -0
- package/dist/esm/auth/id-token-validator.js +107 -0
- package/dist/esm/auth/id-token-validator.js.map +1 -0
- package/dist/esm/auth/index.js +20 -0
- package/dist/esm/auth/index.js.map +1 -0
- package/dist/esm/auth/oauth.js +195 -0
- package/dist/esm/auth/oauth.js.map +1 -0
- package/dist/esm/auth/passwordless.js +150 -0
- package/dist/esm/auth/passwordless.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/errors.js +42 -0
- package/dist/esm/lib/errors.js.map +1 -0
- package/dist/esm/lib/index.js +3 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/lib/middleware/telemetry-middleware.js +23 -0
- package/dist/esm/lib/middleware/telemetry-middleware.js.map +1 -0
- package/dist/esm/lib/models.js +35 -0
- package/dist/esm/lib/models.js.map +1 -0
- package/dist/esm/lib/retry.js +51 -0
- package/dist/esm/lib/retry.js.map +1 -0
- package/dist/esm/lib/runtime.js +225 -0
- package/dist/esm/lib/runtime.js.map +1 -0
- package/dist/esm/management/__generated/index.js +40 -0
- package/dist/esm/management/__generated/index.js.map +1 -0
- package/dist/esm/management/__generated/managers/actions-manager.js +309 -0
- package/dist/esm/management/__generated/managers/actions-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/anomaly-manager.js +36 -0
- package/dist/esm/management/__generated/managers/anomaly-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/attack-protection-manager.js +104 -0
- package/dist/esm/management/__generated/managers/attack-protection-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/blacklists-manager.js +49 -0
- package/dist/esm/management/__generated/managers/blacklists-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/branding-manager.js +180 -0
- package/dist/esm/management/__generated/managers/branding-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/client-grants-manager.js +87 -0
- package/dist/esm/management/__generated/managers/client-grants-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/clients-manager.js +211 -0
- package/dist/esm/management/__generated/managers/clients-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/connections-manager.js +166 -0
- package/dist/esm/management/__generated/managers/connections-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/custom-domains-manager.js +152 -0
- package/dist/esm/management/__generated/managers/custom-domains-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/device-credentials-manager.js +85 -0
- package/dist/esm/management/__generated/managers/device-credentials-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/email-templates-manager.js +75 -0
- package/dist/esm/management/__generated/managers/email-templates-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/emails-manager.js +75 -0
- package/dist/esm/management/__generated/managers/emails-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/grants-manager.js +76 -0
- package/dist/esm/management/__generated/managers/grants-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/guardian-manager.js +491 -0
- package/dist/esm/management/__generated/managers/guardian-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/hooks-manager.js +187 -0
- package/dist/esm/management/__generated/managers/hooks-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/index.js +32 -0
- package/dist/esm/management/__generated/managers/index.js.map +1 -0
- package/dist/esm/management/__generated/managers/jobs-manager.js +112 -0
- package/dist/esm/management/__generated/managers/jobs-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/keys-manager.js +58 -0
- package/dist/esm/management/__generated/managers/keys-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/log-streams-manager.js +365 -0
- package/dist/esm/management/__generated/managers/log-streams-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/logs-manager.js +68 -0
- package/dist/esm/management/__generated/managers/logs-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/organizations-manager.js +436 -0
- package/dist/esm/management/__generated/managers/organizations-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/prompts-manager.js +74 -0
- package/dist/esm/management/__generated/managers/prompts-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/resource-servers-manager.js +104 -0
- package/dist/esm/management/__generated/managers/resource-servers-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/roles-manager.js +211 -0
- package/dist/esm/management/__generated/managers/roles-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/rules-configs-manager.js +55 -0
- package/dist/esm/management/__generated/managers/rules-configs-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/rules-manager.js +122 -0
- package/dist/esm/management/__generated/managers/rules-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/stats-manager.js +45 -0
- package/dist/esm/management/__generated/managers/stats-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/tenants-manager.js +49 -0
- package/dist/esm/management/__generated/managers/tenants-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/tickets-manager.js +42 -0
- package/dist/esm/management/__generated/managers/tickets-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/user-blocks-manager.js +96 -0
- package/dist/esm/management/__generated/managers/user-blocks-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/users-by-email-manager.js +42 -0
- package/dist/esm/management/__generated/managers/users-by-email-manager.js.map +1 -0
- package/dist/esm/management/__generated/managers/users-manager.js +607 -0
- package/dist/esm/management/__generated/managers/users-manager.js.map +1 -0
- package/dist/esm/management/__generated/models/index.js +1575 -0
- package/dist/esm/management/__generated/models/index.js.map +1 -0
- package/dist/esm/management/index.js +4 -0
- package/dist/esm/management/index.js.map +1 -0
- package/dist/esm/management/management-client-options.js +2 -0
- package/dist/esm/management/management-client-options.js.map +1 -0
- package/dist/esm/management/management-client.js +49 -0
- package/dist/esm/management/management-client.js.map +1 -0
- package/dist/esm/management/token-provider-middleware.js +35 -0
- package/dist/esm/management/token-provider-middleware.js.map +1 -0
- package/dist/esm/management/token-provider.js +32 -0
- package/dist/esm/management/token-provider.js.map +1 -0
- package/dist/esm/utils.js +12 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/typings/auth/base-auth-api.d.ts +33 -0
- package/dist/typings/auth/client-authentication.d.ts +26 -0
- package/dist/typings/auth/database.d.ts +153 -0
- package/dist/typings/auth/id-token-validator.d.ts +18 -0
- package/dist/typings/auth/index.d.ts +15 -0
- package/dist/typings/auth/oauth.d.ts +295 -0
- package/dist/typings/auth/passwordless.d.ts +165 -0
- package/dist/typings/index.d.ts +2 -0
- package/dist/typings/lib/errors.d.ts +34 -0
- package/dist/typings/lib/index.d.ts +3 -0
- package/dist/typings/lib/middleware/telemetry-middleware.d.ts +12 -0
- package/dist/typings/lib/models.d.ts +124 -0
- package/dist/typings/lib/retry.d.ts +27 -0
- package/dist/typings/lib/runtime.d.ts +69 -0
- package/dist/typings/management/__generated/index.d.ts +39 -0
- package/dist/typings/management/__generated/managers/actions-manager.d.ts +136 -0
- package/dist/typings/management/__generated/managers/anomaly-manager.d.ts +24 -0
- package/dist/typings/management/__generated/managers/attack-protection-manager.d.ts +52 -0
- package/dist/typings/management/__generated/managers/blacklists-manager.d.ts +28 -0
- package/dist/typings/management/__generated/managers/branding-manager.d.ts +103 -0
- package/dist/typings/management/__generated/managers/client-grants-manager.d.ts +42 -0
- package/dist/typings/management/__generated/managers/clients-manager.d.ts +119 -0
- package/dist/typings/management/__generated/managers/connections-manager.d.ts +71 -0
- package/dist/typings/management/__generated/managers/custom-domains-manager.d.ts +106 -0
- package/dist/typings/management/__generated/managers/device-credentials-manager.d.ts +42 -0
- package/dist/typings/management/__generated/managers/email-templates-manager.d.ts +38 -0
- package/dist/typings/management/__generated/managers/emails-manager.d.ts +40 -0
- package/dist/typings/management/__generated/managers/grants-manager.d.ts +34 -0
- package/dist/typings/management/__generated/managers/guardian-manager.d.ts +240 -0
- package/dist/typings/management/__generated/managers/hooks-manager.d.ts +94 -0
- package/dist/typings/management/__generated/managers/index.d.ts +31 -0
- package/dist/typings/management/__generated/managers/jobs-manager.d.ts +47 -0
- package/dist/typings/management/__generated/managers/keys-manager.d.ts +34 -0
- package/dist/typings/management/__generated/managers/log-streams-manager.d.ts +326 -0
- package/dist/typings/management/__generated/managers/logs-manager.d.ts +56 -0
- package/dist/typings/management/__generated/managers/organizations-manager.d.ts +191 -0
- package/dist/typings/management/__generated/managers/prompts-manager.d.ts +42 -0
- package/dist/typings/management/__generated/managers/resource-servers-manager.d.ts +48 -0
- package/dist/typings/management/__generated/managers/roles-manager.d.ts +110 -0
- package/dist/typings/management/__generated/managers/rules-configs-manager.d.ts +33 -0
- package/dist/typings/management/__generated/managers/rules-manager.d.ts +55 -0
- package/dist/typings/management/__generated/managers/stats-manager.d.ts +24 -0
- package/dist/typings/management/__generated/managers/tenants-manager.d.ts +24 -0
- package/dist/typings/management/__generated/managers/tickets-manager.d.ts +24 -0
- package/dist/typings/management/__generated/managers/user-blocks-manager.d.ts +45 -0
- package/dist/typings/management/__generated/managers/users-by-email-manager.d.ts +22 -0
- package/dist/typings/management/__generated/managers/users-manager.d.ts +323 -0
- package/dist/typings/management/__generated/models/index.d.ts +12704 -0
- package/dist/typings/management/index.d.ts +3 -0
- package/dist/typings/management/management-client-options.d.ts +17 -0
- package/dist/typings/management/management-client.d.ts +17 -0
- package/dist/typings/management/token-provider-middleware.d.ts +7 -0
- package/dist/typings/management/token-provider.d.ts +21 -0
- package/dist/typings/utils.d.ts +10 -0
- package/dist/typings/version.d.ts +1 -0
- package/package.json +47 -33
- package/CHANGELOG.md +0 -685
- package/src/Auth0RestClient.js +0 -123
- package/src/RetryRestClient.js +0 -105
- package/src/auth/DatabaseAuthenticator.js +0 -282
- package/src/auth/OAUthWithIDTokenValidation.js +0 -124
- package/src/auth/OAuthAuthenticator.js +0 -405
- package/src/auth/PasswordlessAuthenticator.js +0 -303
- package/src/auth/TokensManager.js +0 -254
- package/src/auth/UsersManager.js +0 -161
- package/src/auth/clientAuthentication.js +0 -86
- package/src/auth/idToken.js +0 -167
- package/src/auth/index.js +0 -573
- package/src/errors.js +0 -60
- package/src/index.js +0 -11
- package/src/index.mjs +0 -4
- package/src/management/ActionsManager.js +0 -526
- package/src/management/AttackProtectionManager.js +0 -158
- package/src/management/BaseManager.js +0 -41
- package/src/management/BlacklistedTokensManager.js +0 -67
- package/src/management/BrandingManager.js +0 -250
- package/src/management/ClientCredentialsManager.js +0 -112
- package/src/management/ClientGrantsManager.js +0 -124
- package/src/management/ClientsManager.js +0 -184
- package/src/management/ConnectionsManager.js +0 -213
- package/src/management/CustomDomainsManager.js +0 -141
- package/src/management/DeviceCredentialsManager.js +0 -91
- package/src/management/EmailProviderManager.js +0 -101
- package/src/management/EmailTemplatesManager.js +0 -90
- package/src/management/GrantsManager.js +0 -84
- package/src/management/GuardianManager.js +0 -361
- package/src/management/HooksManager.js +0 -295
- package/src/management/JobsManager.js +0 -324
- package/src/management/LogStreamsManager.js +0 -136
- package/src/management/LogsManager.js +0 -82
- package/src/management/ManagementTokenProvider.js +0 -144
- package/src/management/MigrationsManager.js +0 -76
- package/src/management/OrganizationsManager.js +0 -721
- package/src/management/PromptsManager.js +0 -162
- package/src/management/ResourceServersManager.js +0 -143
- package/src/management/RolesManager.js +0 -329
- package/src/management/RulesConfigsManager.js +0 -86
- package/src/management/RulesManager.js +0 -148
- package/src/management/StatsManager.js +0 -84
- package/src/management/TenantManager.js +0 -76
- package/src/management/TicketsManager.js +0 -104
- package/src/management/UserBlocksManager.js +0 -121
- package/src/management/UsersManager.js +0 -882
- package/src/management/index.js +0 -3409
- package/src/utils.js +0 -60
package/README.md
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|

|
|
2
2
|
|
|
3
|
+
> ⚠️ Please be aware that v4 is currently in <strong>Beta</strong>. Whilst we encourage you to test the update within your applications, we do no recommend using this version in production yet.
|
|
4
|
+
|
|
3
5
|

|
|
4
6
|
[](https://codecov.io/gh/auth0/node-auth0)
|
|
5
7
|

|
|
6
8
|
[](https://opensource.org/licenses/MIT)
|
|
7
9
|

|
|
8
10
|
|
|
9
|
-
📚 [Documentation](#documentation) - 🚀 [Getting Started](#getting-started) -
|
|
11
|
+
📚 [Documentation](#documentation) - 🚀 [Getting Started](#getting-started) - 💬 [Feedback](#feedback)
|
|
10
12
|
|
|
11
13
|
## Documentation
|
|
12
14
|
|
|
13
|
-
- [FAQs](https://github.com/auth0/node-auth0/blob/master/FAQ.md) - frequently asked questions about node-auth0.
|
|
14
15
|
- [Docs Site](https://auth0.com/docs) - explore our docs site and learn more about Auth0
|
|
15
16
|
|
|
16
17
|
## Getting Started
|
|
@@ -19,56 +20,59 @@
|
|
|
19
20
|
|
|
20
21
|
This library supports the following tooling versions:
|
|
21
22
|
|
|
22
|
-
- Node.js: `>=
|
|
23
|
+
- Node.js: `>=16`
|
|
23
24
|
|
|
24
25
|
### Installation
|
|
25
26
|
|
|
26
27
|
Using [npm](https://npmjs.org) in your project directory run the following command:
|
|
27
28
|
|
|
28
29
|
```bash
|
|
29
|
-
npm install auth0
|
|
30
|
+
npm install auth0@beta
|
|
30
31
|
```
|
|
31
32
|
|
|
32
33
|
### Configure the SDK
|
|
33
34
|
|
|
34
35
|
#### Authentication API Client
|
|
35
36
|
|
|
36
|
-
This client
|
|
37
|
+
This client can be used to access Auth0's [Authentication API](https://auth0.com/docs/api/authentication).
|
|
37
38
|
|
|
38
39
|
The **AuthenticationClient** constructor takes an _optional_ client ID, if specified it will be used as default value for all endpoints that accept a client ID.
|
|
39
40
|
|
|
40
41
|
```js
|
|
41
|
-
|
|
42
|
+
import { AuthenticationClient } from 'auth0';
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
const auth0 = new AuthenticationClient({
|
|
44
45
|
domain: '{YOUR_ACCOUNT}.auth0.com',
|
|
45
46
|
clientId: '{OPTIONAL_CLIENT_ID}',
|
|
47
|
+
clientSecret: '{OPTIONAL_CLIENT_SECRET}',
|
|
46
48
|
});
|
|
47
49
|
```
|
|
48
50
|
|
|
49
51
|
#### Management API Client
|
|
50
52
|
|
|
51
|
-
> Note: When using the ManagementClient in a browser you should set `telemetry: false`.
|
|
52
|
-
|
|
53
53
|
The Auth0 Management API is meant to be used by back-end servers or trusted parties performing administrative tasks. Generally speaking, anything that can be done through the Auth0 dashboard (and more) can also be done through this API.
|
|
54
54
|
|
|
55
55
|
Initialize your client class with an API v2 token and a domain.
|
|
56
56
|
|
|
57
57
|
```js
|
|
58
|
-
|
|
58
|
+
import { ManagementClient } from 'auth0';
|
|
59
59
|
|
|
60
60
|
var management = new ManagementClient({
|
|
61
|
-
token: '{YOUR_API_V2_TOKEN}',
|
|
62
61
|
domain: '{YOUR_ACCOUNT}.auth0.com',
|
|
62
|
+
token: '{YOUR_API_V2_TOKEN}',
|
|
63
63
|
});
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
Or, initialize your client class with a client secret and a domain.
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
```js
|
|
69
|
+
import { ManagementClient } from 'auth0';
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
var management = new ManagementClient({
|
|
72
|
+
token: '{YOUR_API_V2_TOKEN}',
|
|
73
|
+
domain: '{YOUR_ACCOUNT}.auth0.com',
|
|
74
|
+
});
|
|
75
|
+
```
|
|
72
76
|
|
|
73
77
|
## Feedback
|
|
74
78
|
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseAuthAPI = exports.AuthApiError = void 0;
|
|
4
|
+
const errors_js_1 = require("../lib/errors.js");
|
|
5
|
+
const runtime_js_1 = require("../lib/runtime.js");
|
|
6
|
+
const client_authentication_js_1 = require("./client-authentication.js");
|
|
7
|
+
class AuthApiError extends Error {
|
|
8
|
+
constructor(error, error_description, statusCode, body, headers) {
|
|
9
|
+
super(error_description || error);
|
|
10
|
+
this.error = error;
|
|
11
|
+
this.error_description = error_description;
|
|
12
|
+
this.statusCode = statusCode;
|
|
13
|
+
this.body = body;
|
|
14
|
+
this.headers = headers;
|
|
15
|
+
this.name = 'AuthApiError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.AuthApiError = AuthApiError;
|
|
19
|
+
async function parseError(response) {
|
|
20
|
+
// Errors typically have a specific format:
|
|
21
|
+
// {
|
|
22
|
+
// error: 'invalid_body',
|
|
23
|
+
// error_description: 'Bad Request',
|
|
24
|
+
// }
|
|
25
|
+
const body = await response.text();
|
|
26
|
+
let data;
|
|
27
|
+
try {
|
|
28
|
+
data = JSON.parse(body);
|
|
29
|
+
return new AuthApiError(data.error, data.error_description, response.status, body, response.headers);
|
|
30
|
+
}
|
|
31
|
+
catch (_) {
|
|
32
|
+
return new errors_js_1.ResponseError(response.status, body, response.headers, 'Response returned an error code');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
class BaseAuthAPI extends runtime_js_1.BaseAPI {
|
|
36
|
+
constructor(options) {
|
|
37
|
+
super({ ...options, baseUrl: `https://${options.domain}`, parseError });
|
|
38
|
+
this.domain = options.domain;
|
|
39
|
+
this.clientId = options.clientId;
|
|
40
|
+
this.clientSecret = options.clientSecret;
|
|
41
|
+
this.clientAssertionSigningKey = options.clientAssertionSigningKey;
|
|
42
|
+
this.clientAssertionSigningAlg = options.clientAssertionSigningAlg;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @private
|
|
46
|
+
*/
|
|
47
|
+
async addClientAuthentication(payload, required) {
|
|
48
|
+
return (0, client_authentication_js_1.addClientAuthentication)({
|
|
49
|
+
payload,
|
|
50
|
+
domain: this.domain,
|
|
51
|
+
required,
|
|
52
|
+
clientId: this.clientId,
|
|
53
|
+
clientSecret: this.clientSecret,
|
|
54
|
+
clientAssertionSigningKey: this.clientAssertionSigningKey,
|
|
55
|
+
clientAssertionSigningAlg: this.clientAssertionSigningAlg,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.BaseAuthAPI = BaseAuthAPI;
|
|
60
|
+
//# sourceMappingURL=base-auth-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-auth-api.js","sourceRoot":"","sources":["../../../src/auth/base-auth-api.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AACjD,kDAA2D;AAC3D,yEAGoC;AAkBpC,MAAa,YAAa,SAAQ,KAAK;IAErC,YACS,KAAa,EACb,iBAAyB,EACzB,UAAkB,EAClB,IAAY,EACZ,OAAgB;QAEvB,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,CAAC;QAN3B,UAAK,GAAL,KAAK,CAAQ;QACb,sBAAiB,GAAjB,iBAAiB,CAAQ;QACzB,eAAU,GAAV,UAAU,CAAQ;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QANhB,SAAI,GAAG,cAAuB,CAAC;IASxC,CAAC;CACF;AAXD,oCAWC;AAED,KAAK,UAAU,UAAU,CAAC,QAAkB;IAC1C,2CAA2C;IAC3C,IAAI;IACJ,4BAA4B;IAC5B,uCAAuC;IACvC,IAAI;IAEJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAA0B,CAAC;IAE/B,IAAI;QACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyB,CAAC;QAChD,OAAO,IAAI,YAAY,CACrB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,iBAAiB,EACtB,QAAQ,CAAC,MAAM,EACf,IAAI,EACJ,QAAQ,CAAC,OAAO,CACjB,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,yBAAa,CACtB,QAAQ,CAAC,MAAM,EACf,IAAI,EACJ,QAAQ,CAAC,OAAO,EAChB,iCAAiC,CAClC,CAAC;KACH;AACH,CAAC;AACD,MAAa,WAAY,SAAQ,oBAAO;IAOtC,YAAY,OAAoC;QAC9C,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,OAAO,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QACnE,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IACrE,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,uBAAuB,CACrC,OAAuC,EACvC,QAAiB;QAEjB,OAAO,IAAA,kDAAuB,EAAC;YAC7B,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;YACzD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;SAC1D,CAAC,CAAC;IACL,CAAC;CACF;AAlCD,kCAkCC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.addClientAuthentication = void 0;
|
|
27
|
+
const jose = __importStar(require("jose"));
|
|
28
|
+
const uuid_1 = require("uuid");
|
|
29
|
+
/**
|
|
30
|
+
* Adds client authentication, if available, to the provided payload.
|
|
31
|
+
*
|
|
32
|
+
* Adds `client_secret` for Client Secret Post token endpoint auth method (the SDK doesn't use Client Secret Basic)
|
|
33
|
+
* Adds `client_assertion` and `client_assertion_type` for Private Key JWT token endpoint auth method.
|
|
34
|
+
*
|
|
35
|
+
* If `clientAssertionSigningKey` is provided it takes precedent over `clientSecret` .
|
|
36
|
+
*/
|
|
37
|
+
const addClientAuthentication = async ({ payload, domain, clientId, required, clientAssertionSigningKey, clientAssertionSigningAlg, clientSecret, }) => {
|
|
38
|
+
const cid = payload.client_id || clientId;
|
|
39
|
+
if (clientAssertionSigningKey && !payload.client_assertion) {
|
|
40
|
+
const alg = clientAssertionSigningAlg || 'RS256';
|
|
41
|
+
const privateKey = await jose.importPKCS8(clientAssertionSigningKey, alg);
|
|
42
|
+
payload.client_assertion = await new jose.SignJWT({})
|
|
43
|
+
.setProtectedHeader({ alg })
|
|
44
|
+
.setIssuedAt()
|
|
45
|
+
.setSubject(cid)
|
|
46
|
+
.setJti((0, uuid_1.v4)())
|
|
47
|
+
.setIssuer(cid)
|
|
48
|
+
.setAudience(`https://${domain}/`)
|
|
49
|
+
.setExpirationTime('2mins')
|
|
50
|
+
.sign(privateKey);
|
|
51
|
+
payload.client_assertion_type = 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer';
|
|
52
|
+
}
|
|
53
|
+
else if (clientSecret && !payload.client_secret) {
|
|
54
|
+
payload.client_secret = clientSecret;
|
|
55
|
+
}
|
|
56
|
+
if (required &&
|
|
57
|
+
(!payload.client_secret || payload.client_secret.trim().length === 0) &&
|
|
58
|
+
(!payload.client_assertion || payload.client_assertion.trim().length === 0)) {
|
|
59
|
+
throw new Error('The client_secret or client_assertion field is required.');
|
|
60
|
+
}
|
|
61
|
+
return payload;
|
|
62
|
+
};
|
|
63
|
+
exports.addClientAuthentication = addClientAuthentication;
|
|
64
|
+
//# sourceMappingURL=client-authentication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-authentication.js","sourceRoot":"","sources":["../../../src/auth/client-authentication.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,+BAAkC;AAoBlC;;;;;;;GAOG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAAE,EAC5C,OAAO,EACP,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,yBAAyB,EACzB,yBAAyB,EACzB,YAAY,GACmB,EAAoC,EAAE;IACrE,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;IAC1C,IAAI,yBAAyB,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;QAC1D,MAAM,GAAG,GAAG,yBAAyB,IAAI,OAAO,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAE1E,OAAO,CAAC,gBAAgB,GAAG,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;aAClD,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;aAC3B,WAAW,EAAE;aACb,UAAU,CAAC,GAAG,CAAC;aACf,MAAM,CAAC,IAAA,SAAI,GAAE,CAAC;aACd,SAAS,CAAC,GAAG,CAAC;aACd,WAAW,CAAC,WAAW,MAAM,GAAG,CAAC;aACjC,iBAAiB,CAAC,OAAO,CAAC;aAC1B,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,OAAO,CAAC,qBAAqB,GAAG,wDAAwD,CAAC;KAC1F;SAAM,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QACjD,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC;KACtC;IACD,IACE,QAAQ;QACR,CAAC,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;QACrE,CAAC,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAC3E;QACA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAnCW,QAAA,uBAAuB,2BAmClC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Database = void 0;
|
|
4
|
+
const models_js_1 = require("../lib/models.js");
|
|
5
|
+
const runtime_js_1 = require("../lib/runtime.js");
|
|
6
|
+
const base_auth_api_js_1 = require("./base-auth-api.js");
|
|
7
|
+
/**
|
|
8
|
+
* Sign-up and change-password for Database & Active Directory authentication services.
|
|
9
|
+
*/
|
|
10
|
+
class Database extends base_auth_api_js_1.BaseAuthAPI {
|
|
11
|
+
/**
|
|
12
|
+
* Given a user's credentials, and a connection, this endpoint will create a new user using active authentication.
|
|
13
|
+
*
|
|
14
|
+
* This endpoint only works for database connections.
|
|
15
|
+
*
|
|
16
|
+
* See: https://auth0.com/docs/api/authentication#signup
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```js
|
|
20
|
+
* var data = {
|
|
21
|
+
* email: '{EMAIL}',
|
|
22
|
+
* password: '{PASSWORD}',
|
|
23
|
+
* connection: 'Username-Password-Authentication'
|
|
24
|
+
* };
|
|
25
|
+
*
|
|
26
|
+
* await auth0.database.signUp(data);
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
async signUp(bodyParameters, initOverrides) {
|
|
30
|
+
// TODO: call this `validateRequiredParams` so we can use with bodyParameters in the auth api
|
|
31
|
+
(0, runtime_js_1.validateRequiredRequestParams)(bodyParameters, ['email', 'password', 'connection']);
|
|
32
|
+
const response = await this.request({
|
|
33
|
+
path: '/dbconnections/signup',
|
|
34
|
+
method: 'POST',
|
|
35
|
+
headers: {
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
},
|
|
38
|
+
body: { client_id: this.clientId, ...bodyParameters },
|
|
39
|
+
}, initOverrides);
|
|
40
|
+
return models_js_1.JSONApiResponse.fromResponse(response);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Given a user's email address and a connection, Auth0 will send a change password email.
|
|
44
|
+
*
|
|
45
|
+
* This endpoint only works for database connections.
|
|
46
|
+
*
|
|
47
|
+
* See: https://auth0.com/docs/api/authentication#change-password
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```js
|
|
51
|
+
* var data = {
|
|
52
|
+
* email: '{EMAIL}',
|
|
53
|
+
* connection: 'Username-Password-Authentication'
|
|
54
|
+
* };
|
|
55
|
+
*
|
|
56
|
+
* await auth0.database.changePassword(data);
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
async changePassword(bodyParameters, initOverrides) {
|
|
60
|
+
(0, runtime_js_1.validateRequiredRequestParams)(bodyParameters, ['email', 'connection']);
|
|
61
|
+
const response = await this.request({
|
|
62
|
+
path: '/dbconnections/change_password',
|
|
63
|
+
method: 'POST',
|
|
64
|
+
headers: {
|
|
65
|
+
'Content-Type': 'application/json',
|
|
66
|
+
},
|
|
67
|
+
body: { client_id: this.clientId, ...bodyParameters },
|
|
68
|
+
}, initOverrides);
|
|
69
|
+
return models_js_1.TextApiResponse.fromResponse(response);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.Database = Database;
|
|
73
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/auth/database.ts"],"names":[],"mappings":";;;AAAA,gDAAkF;AAClF,kDAAkE;AAClE,yDAAiD;AA8GjD;;GAEG;AACH,MAAa,QAAS,SAAQ,8BAAW;IACvC;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,MAAM,CACV,cAA6B,EAC7B,aAA4B;QAE5B,6FAA6F;QAC7F,IAAA,0CAA6B,EAAC,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;QAEnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,cAAc,EAAE;SACtD,EACD,aAAa,CACd,CAAC;QAEF,OAAO,2BAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,cAAc,CAClB,cAAqC,EACrC,aAA4B;QAE5B,IAAA,0CAA6B,EAAC,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,IAAI,EAAE,gCAAgC;YACtC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,cAAc,EAAE;SACtD,EACD,aAAa,CACd,CAAC;QAEF,OAAO,2BAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;CACF;AA7ED,4BA6EC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.IDTokenValidator = exports.IdTokenValidatorError = void 0;
|
|
27
|
+
const jose = __importStar(require("jose"));
|
|
28
|
+
const DEFAULT_CLOCK_TOLERANCE = 60; // secs
|
|
29
|
+
class IdTokenValidatorError extends Error {
|
|
30
|
+
}
|
|
31
|
+
exports.IdTokenValidatorError = IdTokenValidatorError;
|
|
32
|
+
class IDTokenValidator {
|
|
33
|
+
constructor({ domain, clientId, clientSecret, agent, headers, timeoutDuration, idTokenSigningAlg = 'RS256', clockTolerance = DEFAULT_CLOCK_TOLERANCE, }) {
|
|
34
|
+
this.jwks = jose.createRemoteJWKSet(new URL(`https://${domain}/.well-known/jwks.json`), {
|
|
35
|
+
timeoutDuration,
|
|
36
|
+
agent,
|
|
37
|
+
headers,
|
|
38
|
+
});
|
|
39
|
+
this.alg = idTokenSigningAlg;
|
|
40
|
+
this.audience = clientId;
|
|
41
|
+
this.secret = new TextEncoder().encode(clientSecret);
|
|
42
|
+
this.issuer = `https://${domain}/`;
|
|
43
|
+
this.clockTolerance = clockTolerance;
|
|
44
|
+
}
|
|
45
|
+
async validate(idToken, { nonce, maxAge, organization } = {}) {
|
|
46
|
+
const secret = this.alg === 'HS256' ? this.secret : this.jwks;
|
|
47
|
+
const header = jose.decodeProtectedHeader(idToken);
|
|
48
|
+
const payload = jose.decodeJwt(idToken);
|
|
49
|
+
// Check algorithm
|
|
50
|
+
if (header.alg !== 'RS256' && header.alg !== 'HS256') {
|
|
51
|
+
throw new Error(`Signature algorithm of "${header.alg}" is not supported. Expected the ID token to be signed with "RS256" or "HS256".`);
|
|
52
|
+
}
|
|
53
|
+
// Issuer
|
|
54
|
+
if (!payload.iss || typeof payload.iss !== 'string') {
|
|
55
|
+
throw new IdTokenValidatorError('Issuer (iss) claim must be a string present in the ID token');
|
|
56
|
+
}
|
|
57
|
+
if (payload.iss !== this.issuer) {
|
|
58
|
+
throw new IdTokenValidatorError(`Issuer (iss) claim mismatch in the ID token; expected "${this.issuer}", found "${payload.iss}"`);
|
|
59
|
+
}
|
|
60
|
+
// Subject
|
|
61
|
+
if (!payload.sub || typeof payload.sub !== 'string') {
|
|
62
|
+
throw new IdTokenValidatorError('Subject (sub) claim must be a string present in the ID token');
|
|
63
|
+
}
|
|
64
|
+
// Audience
|
|
65
|
+
if (!payload.aud || !(typeof payload.aud === 'string' || Array.isArray(payload.aud))) {
|
|
66
|
+
throw new IdTokenValidatorError('Audience (aud) claim must be a string or array of strings present in the ID token');
|
|
67
|
+
}
|
|
68
|
+
if (Array.isArray(payload.aud) && !payload.aud.includes(this.audience)) {
|
|
69
|
+
throw new IdTokenValidatorError(`Audience (aud) claim mismatch in the ID token; expected "${this.audience}" but was not one of "${payload.aud.join(', ')}"`);
|
|
70
|
+
}
|
|
71
|
+
else if (typeof payload.aud === 'string' && payload.aud !== this.audience) {
|
|
72
|
+
throw new IdTokenValidatorError(`Audience (aud) claim mismatch in the ID token; expected "${this.audience}" but found "${payload.aud}"`);
|
|
73
|
+
}
|
|
74
|
+
// Organization
|
|
75
|
+
if (organization) {
|
|
76
|
+
if (!payload.org_id || typeof payload.org_id !== 'string') {
|
|
77
|
+
throw new IdTokenValidatorError('Organization Id (org_id) claim must be a string present in the ID token');
|
|
78
|
+
}
|
|
79
|
+
if (payload.org_id !== organization) {
|
|
80
|
+
throw new IdTokenValidatorError(`Organization Id (org_id) claim value mismatch in the ID token; expected "${organization}", found "${payload.org_id}"'`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Time validation (epoch)
|
|
84
|
+
const now = Math.floor(Date.now() / 1000);
|
|
85
|
+
// Expires at
|
|
86
|
+
if (!payload.exp || typeof payload.exp !== 'number') {
|
|
87
|
+
throw new IdTokenValidatorError('Expiration Time (exp) claim must be a number present in the ID token');
|
|
88
|
+
}
|
|
89
|
+
const expTime = payload.exp + this.clockTolerance;
|
|
90
|
+
if (now > expTime) {
|
|
91
|
+
throw new IdTokenValidatorError(`Expiration Time (exp) claim error in the ID token; current time (${now}) is after expiration time (${expTime})`);
|
|
92
|
+
}
|
|
93
|
+
// Issued at
|
|
94
|
+
if (!payload.iat || typeof payload.iat !== 'number') {
|
|
95
|
+
throw new IdTokenValidatorError('Issued At (iat) claim must be a number present in the ID token');
|
|
96
|
+
}
|
|
97
|
+
// Nonce
|
|
98
|
+
if (nonce || payload.nonce) {
|
|
99
|
+
if (!payload.nonce || typeof payload.nonce !== 'string') {
|
|
100
|
+
throw new IdTokenValidatorError('Nonce (nonce) claim must be a string present in the ID token');
|
|
101
|
+
}
|
|
102
|
+
if (payload.nonce !== nonce) {
|
|
103
|
+
throw new IdTokenValidatorError(`Nonce (nonce) claim mismatch in the ID token; expected "${nonce}", found "${payload.nonce}"`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Authorized party
|
|
107
|
+
if (Array.isArray(payload.aud) && payload.aud.length > 1) {
|
|
108
|
+
if (!payload.azp || typeof payload.azp !== 'string') {
|
|
109
|
+
throw new IdTokenValidatorError('Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values');
|
|
110
|
+
}
|
|
111
|
+
if (payload.azp !== this.audience) {
|
|
112
|
+
throw new IdTokenValidatorError(`Authorized Party (azp) claim mismatch in the ID token; expected "${this.audience}", found "${payload.azp}"`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Authentication time
|
|
116
|
+
if (maxAge) {
|
|
117
|
+
if (!payload.auth_time || typeof payload.auth_time !== 'number') {
|
|
118
|
+
throw new IdTokenValidatorError('Authentication Time (auth_time) claim must be a number present in the ID token when Max Age (max_age) is specified');
|
|
119
|
+
}
|
|
120
|
+
const authValidUntil = payload.auth_time + maxAge + this.clockTolerance;
|
|
121
|
+
if (now > authValidUntil) {
|
|
122
|
+
throw new IdTokenValidatorError(`Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Currrent time (${now}) is after last auth at ${authValidUntil}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
await jose.jwtVerify(idToken, secret, {
|
|
126
|
+
issuer: this.issuer,
|
|
127
|
+
audience: this.audience,
|
|
128
|
+
clockTolerance: this.clockTolerance,
|
|
129
|
+
maxTokenAge: maxAge,
|
|
130
|
+
algorithms: ['HS256', 'RS256'],
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.IDTokenValidator = IDTokenValidator;
|
|
135
|
+
//# sourceMappingURL=id-token-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-token-validator.js","sourceRoot":"","sources":["../../../src/auth/id-token-validator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAG7B,MAAM,uBAAuB,GAAG,EAAE,CAAC,CAAC,OAAO;AAE3C,MAAa,qBAAsB,SAAQ,KAAK;CAAG;AAAnD,sDAAmD;AAQnD,MAAa,gBAAgB;IAW3B,YAAY,EACV,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,OAAO,EACP,eAAe,EACf,iBAAiB,GAAG,OAAO,EAC3B,cAAc,GAAG,uBAAuB,GACZ;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,WAAW,MAAM,wBAAwB,CAAC,EAAE;YACtF,eAAe;YACf,KAAK;YACL,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,WAAW,MAAM,GAAG,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,KAA6B,EAAE;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAE9D,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExC,kBAAkB;QAClB,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,EAAE;YACpD,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAC,GAAG,iFAAiF,CACvH,CAAC;SACH;QACD,SAAS;QACT,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;YACnD,MAAM,IAAI,qBAAqB,CAC7B,6DAA6D,CAC9D,CAAC;SACH;QACD,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE;YAC/B,MAAM,IAAI,qBAAqB,CAC7B,0DAA0D,IAAI,CAAC,MAAM,aAAa,OAAO,CAAC,GAAG,GAAG,CACjG,CAAC;SACH;QAED,UAAU;QACV,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;YACnD,MAAM,IAAI,qBAAqB,CAC7B,8DAA8D,CAC/D,CAAC;SACH;QAED,WAAW;QACX,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;YACpF,MAAM,IAAI,qBAAqB,CAC7B,mFAAmF,CACpF,CAAC;SACH;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACtE,MAAM,IAAI,qBAAqB,CAC7B,4DACE,IAAI,CAAC,QACP,yBAAyB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnD,CAAC;SACH;aAAM,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,EAAE;YAC3E,MAAM,IAAI,qBAAqB,CAC7B,4DAA4D,IAAI,CAAC,QAAQ,gBAAgB,OAAO,CAAC,GAAG,GAAG,CACxG,CAAC;SACH;QAED,eAAe;QACf,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;gBACzD,MAAM,IAAI,qBAAqB,CAC7B,yEAAyE,CAC1E,CAAC;aACH;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE;gBACnC,MAAM,IAAI,qBAAqB,CAC7B,4EAA4E,YAAY,aAAa,OAAO,CAAC,MAAM,IAAI,CACxH,CAAC;aACH;SACF;QAED,0BAA0B;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAE1C,aAAa;QACb,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;YACnD,MAAM,IAAI,qBAAqB,CAC7B,sEAAsE,CACvE,CAAC;SACH;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC;QAElD,IAAI,GAAG,GAAG,OAAO,EAAE;YACjB,MAAM,IAAI,qBAAqB,CAC7B,oEAAoE,GAAG,+BAA+B,OAAO,GAAG,CACjH,CAAC;SACH;QAED,YAAY;QACZ,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;YACnD,MAAM,IAAI,qBAAqB,CAC7B,gEAAgE,CACjE,CAAC;SACH;QAED,QAAQ;QACR,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;gBACvD,MAAM,IAAI,qBAAqB,CAC7B,8DAA8D,CAC/D,CAAC;aACH;YACD,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;gBAC3B,MAAM,IAAI,qBAAqB,CAC7B,2DAA2D,KAAK,aAAa,OAAO,CAAC,KAAK,GAAG,CAC9F,CAAC;aACH;SACF;QAED,mBAAmB;QACnB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;gBACnD,MAAM,IAAI,qBAAqB,CAC7B,qHAAqH,CACtH,CAAC;aACH;YACD,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,EAAE;gBACjC,MAAM,IAAI,qBAAqB,CAC7B,oEAAoE,IAAI,CAAC,QAAQ,aAAa,OAAO,CAAC,GAAG,GAAG,CAC7G,CAAC;aACH;SACF;QAED,sBAAsB;QACtB,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE;gBAC/D,MAAM,IAAI,qBAAqB,CAC7B,oHAAoH,CACrH,CAAC;aACH;YAED,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACxE,IAAI,GAAG,GAAG,cAAc,EAAE;gBACxB,MAAM,IAAI,qBAAqB,CAC7B,wJAAwJ,GAAG,2BAA2B,cAAc,EAAE,CACvM,CAAC;aACH;SACF;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAa,EAAE;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,MAAM;YACnB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;CACF;AA9KD,4CA8KC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.AuthenticationClient = exports.AuthApiError = exports.IdTokenValidatorError = void 0;
|
|
18
|
+
const telemetry_middleware_js_1 = require("../lib/middleware/telemetry-middleware.js");
|
|
19
|
+
const database_js_1 = require("./database.js");
|
|
20
|
+
const oauth_js_1 = require("./oauth.js");
|
|
21
|
+
const passwordless_js_1 = require("./passwordless.js");
|
|
22
|
+
__exportStar(require("./database.js"), exports);
|
|
23
|
+
__exportStar(require("./oauth.js"), exports);
|
|
24
|
+
__exportStar(require("./passwordless.js"), exports);
|
|
25
|
+
var id_token_validator_js_1 = require("./id-token-validator.js");
|
|
26
|
+
Object.defineProperty(exports, "IdTokenValidatorError", { enumerable: true, get: function () { return id_token_validator_js_1.IdTokenValidatorError; } });
|
|
27
|
+
var base_auth_api_js_1 = require("./base-auth-api.js");
|
|
28
|
+
Object.defineProperty(exports, "AuthApiError", { enumerable: true, get: function () { return base_auth_api_js_1.AuthApiError; } });
|
|
29
|
+
class AuthenticationClient {
|
|
30
|
+
constructor(options) {
|
|
31
|
+
if (options.telemetry !== false) {
|
|
32
|
+
options.middleware = [...(options.middleware || []), new telemetry_middleware_js_1.TelemetryMiddleware(options)];
|
|
33
|
+
}
|
|
34
|
+
this.database = new database_js_1.Database(options);
|
|
35
|
+
this.oauth = new oauth_js_1.OAuth(options);
|
|
36
|
+
this.passwordless = new passwordless_js_1.Passwordless(options);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.AuthenticationClient = AuthenticationClient;
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uFAAgF;AAEhF,+CAAyC;AACzC,yCAAmC;AACnC,uDAAiD;AAEjD,gDAA8B;AAC9B,6CAA2B;AAC3B,oDAAkC;AAClC,iEAAwF;AAAvD,8HAAA,qBAAqB,OAAA;AACtD,uDAA+E;AAAtE,gHAAA,YAAY,OAAA;AAErB,MAAa,oBAAoB;IAK/B,YAAY,OAAoC;QAC9C,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE;YAC/B,OAAO,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,6CAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;SACxF;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,sBAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAK,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,IAAI,8BAAY,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;CACF;AAdD,oDAcC"}
|