@okta/okta-auth-js 7.0.1 → 7.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.
- package/README.md +2 -0
- package/cjs/authn/AuthnTransactionImpl.js +6 -8
- package/cjs/authn/AuthnTransactionImpl.js.map +1 -1
- package/cjs/authn/api.js +3 -18
- package/cjs/authn/api.js.map +1 -1
- package/cjs/authn/factory.js +1 -7
- package/cjs/authn/factory.js.map +1 -1
- package/cjs/authn/index.js +0 -5
- package/cjs/authn/index.js.map +1 -1
- package/cjs/authn/mixin.js +14 -22
- package/cjs/authn/mixin.js.map +1 -1
- package/cjs/authn/util/flattenEmbedded.js +5 -12
- package/cjs/authn/util/flattenEmbedded.js.map +1 -1
- package/cjs/authn/util/link2fn.js +0 -22
- package/cjs/authn/util/link2fn.js.map +1 -1
- package/cjs/authn/util/links2fns.js +0 -12
- package/cjs/authn/util/links2fns.js.map +1 -1
- package/cjs/authn/util/poll.js +9 -27
- package/cjs/authn/util/poll.js.map +1 -1
- package/cjs/authn/util/stateToken.js +3 -4
- package/cjs/authn/util/stateToken.js.map +1 -1
- package/cjs/base/factory.js +6 -14
- package/cjs/base/factory.js.map +1 -1
- package/cjs/base/index.js +0 -5
- package/cjs/base/index.js.map +1 -1
- package/cjs/base/options.js +1 -2
- package/cjs/base/options.js.map +1 -1
- package/cjs/browser/browserStorage.js +15 -43
- package/cjs/browser/browserStorage.js.map +1 -1
- package/cjs/browser/fingerprint.js +3 -15
- package/cjs/browser/fingerprint.js.map +1 -1
- package/cjs/clock.js +5 -7
- package/cjs/clock.js.map +1 -1
- package/cjs/constants.js +4 -3
- package/cjs/constants.js.map +1 -1
- package/cjs/core/AuthStateManager.js +24 -48
- package/cjs/core/AuthStateManager.js.map +1 -1
- package/cjs/core/ServiceManager/browser.js +13 -33
- package/cjs/core/ServiceManager/browser.js.map +1 -1
- package/cjs/core/ServiceManager/index.js +0 -1
- package/cjs/core/ServiceManager/index.js.map +1 -1
- package/cjs/core/ServiceManager/node.js +3 -9
- package/cjs/core/ServiceManager/node.js.map +1 -1
- package/cjs/core/factory.js +0 -7
- package/cjs/core/factory.js.map +1 -1
- package/cjs/core/index.js +0 -13
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/mixin.js +16 -20
- package/cjs/core/mixin.js.map +1 -1
- package/cjs/core/options.js +1 -3
- package/cjs/core/options.js.map +1 -1
- package/cjs/core/storage.js +0 -2
- package/cjs/core/storage.js.map +1 -1
- package/cjs/core/types/index.js +0 -5
- package/cjs/core/types/index.js.map +1 -1
- package/cjs/crypto/base64.js +9 -22
- package/cjs/crypto/base64.js.map +1 -1
- package/cjs/crypto/browser.js +0 -4
- package/cjs/crypto/browser.js.map +1 -1
- package/cjs/crypto/index.js +0 -9
- package/cjs/crypto/index.js.map +1 -1
- package/cjs/crypto/node.js +0 -13
- package/cjs/crypto/node.js.map +1 -1
- package/cjs/crypto/oidcHash.js +1 -4
- package/cjs/crypto/oidcHash.js.map +1 -1
- package/cjs/crypto/verifyToken.js +6 -7
- package/cjs/crypto/verifyToken.js.map +1 -1
- package/cjs/crypto/webcrypto.js +0 -1
- package/cjs/crypto/webcrypto.js.map +1 -1
- package/cjs/errors/AuthApiError.js +1 -7
- package/cjs/errors/AuthApiError.js.map +1 -1
- package/cjs/errors/AuthPollStopError.js +1 -5
- package/cjs/errors/AuthPollStopError.js.map +1 -1
- package/cjs/errors/AuthSdkError.js +1 -6
- package/cjs/errors/AuthSdkError.js.map +1 -1
- package/cjs/errors/CustomError.js +1 -4
- package/cjs/errors/CustomError.js.map +1 -1
- package/cjs/errors/OAuthError.js +4 -7
- package/cjs/errors/OAuthError.js.map +1 -1
- package/cjs/errors/index.js +1 -9
- package/cjs/errors/index.js.map +1 -1
- package/cjs/exports/authn.js +0 -9
- package/cjs/exports/authn.js.map +1 -1
- package/cjs/exports/cdn/authn.js +0 -2
- package/cjs/exports/cdn/authn.js.map +1 -1
- package/cjs/exports/cdn/core.js +0 -2
- package/cjs/exports/cdn/core.js.map +1 -1
- package/cjs/exports/cdn/default.js +0 -2
- package/cjs/exports/cdn/default.js.map +1 -1
- package/cjs/exports/cdn/idx.js +0 -2
- package/cjs/exports/cdn/idx.js.map +1 -1
- package/cjs/exports/cdn/myaccount.js +0 -2
- package/cjs/exports/cdn/myaccount.js.map +1 -1
- package/cjs/exports/common.js +0 -22
- package/cjs/exports/common.js.map +1 -1
- package/cjs/exports/core.js +0 -9
- package/cjs/exports/core.js.map +1 -1
- package/cjs/exports/default.js +2 -12
- package/cjs/exports/default.js.map +1 -1
- package/cjs/exports/idx.js +3 -7
- package/cjs/exports/idx.js.map +1 -1
- package/cjs/exports/myaccount.js +0 -9
- package/cjs/exports/myaccount.js.map +1 -1
- package/cjs/features.js +1 -18
- package/cjs/features.js.map +1 -1
- package/cjs/fetch/fetchRequest.js +6 -20
- package/cjs/fetch/fetchRequest.js.map +1 -1
- package/cjs/http/OktaUserAgent.js +3 -11
- package/cjs/http/OktaUserAgent.js.map +1 -1
- package/cjs/http/headers.js +1 -1
- package/cjs/http/headers.js.map +1 -1
- package/cjs/http/index.js +0 -11
- package/cjs/http/index.js.map +1 -1
- package/cjs/http/mixin.js +2 -10
- package/cjs/http/mixin.js.map +1 -1
- package/cjs/http/options.js +1 -5
- package/cjs/http/options.js.map +1 -1
- package/cjs/http/request.js +75 -57
- package/cjs/http/request.js.map +1 -1
- package/cjs/idx/IdxTransactionManager.js +2 -22
- package/cjs/idx/IdxTransactionManager.js.map +1 -1
- package/cjs/idx/authenticate.js +3 -5
- package/cjs/idx/authenticate.js.map +1 -1
- package/cjs/idx/authenticator/Authenticator.js +2 -4
- package/cjs/idx/authenticator/Authenticator.js.map +1 -1
- package/cjs/idx/authenticator/OktaPassword.js +2 -10
- package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
- package/cjs/idx/authenticator/OktaVerifyTotp.js +0 -6
- package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -1
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +0 -10
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
- package/cjs/idx/authenticator/SecurityQuestionVerification.js +1 -10
- package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +2 -10
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -1
- package/cjs/idx/authenticator/WebauthnEnrollment.js +0 -8
- package/cjs/idx/authenticator/WebauthnEnrollment.js.map +1 -1
- package/cjs/idx/authenticator/WebauthnVerification.js +0 -8
- package/cjs/idx/authenticator/WebauthnVerification.js.map +1 -1
- package/cjs/idx/authenticator/getAuthenticator.js +0 -15
- package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
- package/cjs/idx/authenticator/index.js +0 -15
- package/cjs/idx/authenticator/index.js.map +1 -1
- package/cjs/idx/authenticator/util.js +8 -18
- package/cjs/idx/authenticator/util.js.map +1 -1
- package/cjs/idx/cancel.js +3 -4
- package/cjs/idx/cancel.js.map +1 -1
- package/cjs/idx/emailVerify.js +5 -13
- package/cjs/idx/emailVerify.js.map +1 -1
- package/cjs/idx/factory/OktaAuthIdx.js +0 -3
- package/cjs/idx/factory/OktaAuthIdx.js.map +1 -1
- package/cjs/idx/factory/api.js +1 -17
- package/cjs/idx/factory/api.js.map +1 -1
- package/cjs/idx/factory/index.js +0 -3
- package/cjs/idx/factory/index.js.map +1 -1
- package/cjs/idx/flow/AccountUnlockFlow.js +1 -2
- package/cjs/idx/flow/AccountUnlockFlow.js.map +1 -1
- package/cjs/idx/flow/AuthenticationFlow.js +1 -2
- package/cjs/idx/flow/AuthenticationFlow.js.map +1 -1
- package/cjs/idx/flow/FlowSpecification.js +2 -13
- package/cjs/idx/flow/FlowSpecification.js.map +1 -1
- package/cjs/idx/flow/PasswordRecoveryFlow.js +1 -2
- package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -1
- package/cjs/idx/flow/RegistrationFlow.js +1 -2
- package/cjs/idx/flow/RegistrationFlow.js.map +1 -1
- package/cjs/idx/flow/index.js +0 -11
- package/cjs/idx/flow/index.js.map +1 -1
- package/cjs/idx/handleInteractionCodeRedirect.js +7 -12
- package/cjs/idx/handleInteractionCodeRedirect.js.map +1 -1
- package/cjs/idx/idxState/index.js +1 -11
- package/cjs/idx/idxState/index.js.map +1 -1
- package/cjs/idx/idxState/v1/actionParser.js +1 -12
- package/cjs/idx/idxState/v1/actionParser.js.map +1 -1
- package/cjs/idx/idxState/v1/generateIdxAction.js +10 -15
- package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -1
- package/cjs/idx/idxState/v1/idxResponseParser.js +7 -23
- package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -1
- package/cjs/idx/idxState/v1/makeIdxState.js +2 -10
- package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -1
- package/cjs/idx/idxState/v1/parsers.js +0 -2
- package/cjs/idx/idxState/v1/parsers.js.map +1 -1
- package/cjs/idx/idxState/v1/remediationParser.js +2 -4
- package/cjs/idx/idxState/v1/remediationParser.js.map +1 -1
- package/cjs/idx/index.js +0 -26
- package/cjs/idx/index.js.map +1 -1
- package/cjs/idx/interact.js +18 -18
- package/cjs/idx/interact.js.map +1 -1
- package/cjs/idx/introspect.js +5 -14
- package/cjs/idx/introspect.js.map +1 -1
- package/cjs/idx/mixin.js +0 -9
- package/cjs/idx/mixin.js.map +1 -1
- package/cjs/idx/options.js +2 -3
- package/cjs/idx/options.js.map +1 -1
- package/cjs/idx/poll.js +1 -10
- package/cjs/idx/poll.js.map +1 -1
- package/cjs/idx/proceed.js +3 -9
- package/cjs/idx/proceed.js.map +1 -1
- package/cjs/idx/recoverPassword.js +3 -4
- package/cjs/idx/recoverPassword.js.map +1 -1
- package/cjs/idx/register.js +5 -11
- package/cjs/idx/register.js.map +1 -1
- package/cjs/idx/remediate.js +24 -45
- package/cjs/idx/remediate.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +7 -16
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorVerificationData.js +7 -15
- package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
- package/cjs/idx/remediators/Base/AuthenticatorData.js +7 -22
- package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
- package/cjs/idx/remediators/Base/Remediator.js +38 -67
- package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
- package/cjs/idx/remediators/Base/SelectAuthenticator.js +13 -30
- package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js +5 -13
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/ChallengeAuthenticator.js +1 -5
- package/cjs/idx/remediators/ChallengeAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/ChallengePoll.js +1 -6
- package/cjs/idx/remediators/ChallengePoll.js.map +1 -1
- package/cjs/idx/remediators/EnrollAuthenticator.js +1 -5
- package/cjs/idx/remediators/EnrollAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/EnrollPoll.js +5 -12
- package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
- package/cjs/idx/remediators/EnrollProfile.js +8 -30
- package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/EnrollmentChannelData.js +5 -13
- package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
- package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js +13 -19
- package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -1
- package/cjs/idx/remediators/GenericRemediator/index.js +0 -1
- package/cjs/idx/remediators/GenericRemediator/index.js.map +1 -1
- package/cjs/idx/remediators/GenericRemediator/util.js +19 -31
- package/cjs/idx/remediators/GenericRemediator/util.js.map +1 -1
- package/cjs/idx/remediators/Identify.js +3 -12
- package/cjs/idx/remediators/Identify.js.map +1 -1
- package/cjs/idx/remediators/ReEnrollAuthenticator.js +3 -10
- package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/RedirectIdp.js +1 -7
- package/cjs/idx/remediators/RedirectIdp.js.map +1 -1
- package/cjs/idx/remediators/ResetAuthenticator.js +1 -5
- package/cjs/idx/remediators/ResetAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +3 -11
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorEnroll.js +1 -5
- package/cjs/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js +6 -15
- package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
- package/cjs/idx/remediators/SelectEnrollProfile.js +1 -6
- package/cjs/idx/remediators/SelectEnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/SelectEnrollmentChannel.js +5 -16
- package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
- package/cjs/idx/remediators/Skip.js +1 -6
- package/cjs/idx/remediators/Skip.js.map +1 -1
- package/cjs/idx/remediators/index.js +0 -39
- package/cjs/idx/remediators/index.js.map +1 -1
- package/cjs/idx/remediators/util.js +1 -7
- package/cjs/idx/remediators/util.js.map +1 -1
- package/cjs/idx/run.js +37 -52
- package/cjs/idx/run.js.map +1 -1
- package/cjs/idx/startTransaction.js +1 -2
- package/cjs/idx/startTransaction.js.map +1 -1
- package/cjs/idx/storage.js +3 -22
- package/cjs/idx/storage.js.map +1 -1
- package/cjs/idx/transactionMeta.js +24 -42
- package/cjs/idx/transactionMeta.js.map +1 -1
- package/cjs/idx/types/api.js +1 -9
- package/cjs/idx/types/api.js.map +1 -1
- package/cjs/idx/types/idx-js.js +3 -3
- package/cjs/idx/types/idx-js.js.map +1 -1
- package/cjs/idx/types/index.js +0 -7
- package/cjs/idx/types/index.js.map +1 -1
- package/cjs/idx/types/meta.js.map +1 -1
- package/cjs/idx/types/options.js.map +1 -1
- package/cjs/idx/unlockAccount.js +7 -11
- package/cjs/idx/unlockAccount.js.map +1 -1
- package/cjs/idx/util.js +24 -76
- package/cjs/idx/util.js.map +1 -1
- package/cjs/idx/webauthn.js +13 -18
- package/cjs/idx/webauthn.js.map +1 -1
- package/cjs/myaccount/api.js +0 -5
- package/cjs/myaccount/api.js.map +1 -1
- package/cjs/myaccount/emailApi.js +6 -21
- package/cjs/myaccount/emailApi.js.map +1 -1
- package/cjs/myaccount/factory.js +0 -3
- package/cjs/myaccount/factory.js.map +1 -1
- package/cjs/myaccount/index.js +0 -7
- package/cjs/myaccount/index.js.map +1 -1
- package/cjs/myaccount/mixin.js +0 -5
- package/cjs/myaccount/mixin.js.map +1 -1
- package/cjs/myaccount/phoneApi.js +5 -18
- package/cjs/myaccount/phoneApi.js.map +1 -1
- package/cjs/myaccount/profileApi.js +2 -9
- package/cjs/myaccount/profileApi.js.map +1 -1
- package/cjs/myaccount/request.js +12 -78
- package/cjs/myaccount/request.js.map +1 -1
- package/cjs/myaccount/transactions/Base.js +5 -7
- package/cjs/myaccount/transactions/Base.js.map +1 -1
- package/cjs/myaccount/transactions/EmailChallengeTransaction.js +5 -10
- package/cjs/myaccount/transactions/EmailChallengeTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/EmailStatusTransaction.js +2 -7
- package/cjs/myaccount/transactions/EmailStatusTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/EmailTransaction.js +5 -13
- package/cjs/myaccount/transactions/EmailTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/PhoneTransaction.js +5 -12
- package/cjs/myaccount/transactions/PhoneTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/ProfileSchemaTransaction.js +0 -5
- package/cjs/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/ProfileTransaction.js +0 -5
- package/cjs/myaccount/transactions/ProfileTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/index.js +0 -8
- package/cjs/myaccount/transactions/index.js.map +1 -1
- package/cjs/myaccount/types.js +0 -5
- package/cjs/myaccount/types.js.map +1 -1
- package/cjs/oidc/TokenManager.js +39 -100
- package/cjs/oidc/TokenManager.js.map +1 -1
- package/cjs/oidc/TransactionManager.js +19 -26
- package/cjs/oidc/TransactionManager.js.map +1 -1
- package/cjs/oidc/decodeToken.js +1 -5
- package/cjs/oidc/decodeToken.js.map +1 -1
- package/cjs/oidc/endpoints/authorize.js +9 -13
- package/cjs/oidc/endpoints/authorize.js.map +1 -1
- package/cjs/oidc/endpoints/index.js +0 -5
- package/cjs/oidc/endpoints/index.js.map +1 -1
- package/cjs/oidc/endpoints/token.js +5 -17
- package/cjs/oidc/endpoints/token.js.map +1 -1
- package/cjs/oidc/endpoints/well-known.js +7 -14
- package/cjs/oidc/endpoints/well-known.js.map +1 -1
- package/cjs/oidc/exchangeCodeForTokens.js +7 -12
- package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
- package/cjs/oidc/factory/OktaAuthOAuth.js +0 -6
- package/cjs/oidc/factory/OktaAuthOAuth.js.map +1 -1
- package/cjs/oidc/factory/api.js +6 -20
- package/cjs/oidc/factory/api.js.map +1 -1
- package/cjs/oidc/factory/index.js +0 -3
- package/cjs/oidc/factory/index.js.map +1 -1
- package/cjs/oidc/getToken.js +18 -30
- package/cjs/oidc/getToken.js.map +1 -1
- package/cjs/oidc/getUserInfo.js +1 -15
- package/cjs/oidc/getUserInfo.js.map +1 -1
- package/cjs/oidc/getWithPopup.js +4 -8
- package/cjs/oidc/getWithPopup.js.map +1 -1
- package/cjs/oidc/getWithRedirect.js +1 -8
- package/cjs/oidc/getWithRedirect.js.map +1 -1
- package/cjs/oidc/getWithoutPrompt.js +1 -5
- package/cjs/oidc/getWithoutPrompt.js.map +1 -1
- package/cjs/oidc/handleOAuthResponse.js +23 -40
- package/cjs/oidc/handleOAuthResponse.js.map +1 -1
- package/cjs/oidc/index.js +0 -32
- package/cjs/oidc/index.js.map +1 -1
- package/cjs/oidc/mixin/browser.js +6 -18
- package/cjs/oidc/mixin/browser.js.map +1 -1
- package/cjs/oidc/mixin/index.js +37 -89
- package/cjs/oidc/mixin/index.js.map +1 -1
- package/cjs/oidc/mixin/node.js +2 -9
- package/cjs/oidc/mixin/node.js.map +1 -1
- package/cjs/oidc/options/OAuthOptionsConstructor.js +17 -24
- package/cjs/oidc/options/OAuthOptionsConstructor.js.map +1 -1
- package/cjs/oidc/options/browser.js.map +1 -1
- package/cjs/oidc/options/index.js +0 -1
- package/cjs/oidc/options/index.js.map +1 -1
- package/cjs/oidc/options/node.js.map +1 -1
- package/cjs/oidc/parseFromUrl.js +1 -32
- package/cjs/oidc/parseFromUrl.js.map +1 -1
- package/cjs/oidc/renewToken.js +5 -16
- package/cjs/oidc/renewToken.js.map +1 -1
- package/cjs/oidc/renewTokens.js +3 -15
- package/cjs/oidc/renewTokens.js.map +1 -1
- package/cjs/oidc/renewTokensWithRefresh.js +3 -13
- package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
- package/cjs/oidc/revokeToken.js +3 -14
- package/cjs/oidc/revokeToken.js.map +1 -1
- package/cjs/oidc/storage.js +0 -8
- package/cjs/oidc/storage.js.map +1 -1
- package/cjs/oidc/types/Token.js +1 -5
- package/cjs/oidc/types/Token.js.map +1 -1
- package/cjs/oidc/types/TokenManager.js +1 -1
- package/cjs/oidc/types/TokenManager.js.map +1 -1
- package/cjs/oidc/types/Transaction.js +1 -12
- package/cjs/oidc/types/Transaction.js.map +1 -1
- package/cjs/oidc/types/UserClaims.js.map +1 -1
- package/cjs/oidc/types/api.js.map +1 -1
- package/cjs/oidc/types/index.js +0 -21
- package/cjs/oidc/types/index.js.map +1 -1
- package/cjs/oidc/types/meta.js.map +1 -1
- package/cjs/oidc/types/options.js.map +1 -1
- package/cjs/oidc/types/proto.js.map +1 -1
- package/cjs/oidc/util/browser.js +4 -13
- package/cjs/oidc/util/browser.js.map +1 -1
- package/cjs/oidc/util/defaultTokenParams.js +5 -5
- package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
- package/cjs/oidc/util/errors.js +3 -8
- package/cjs/oidc/util/errors.js.map +1 -1
- package/cjs/oidc/util/index.js +0 -24
- package/cjs/oidc/util/index.js.map +1 -1
- package/cjs/oidc/util/loginRedirect.js +11 -25
- package/cjs/oidc/util/loginRedirect.js.map +1 -1
- package/cjs/oidc/util/oauth.js +3 -12
- package/cjs/oidc/util/oauth.js.map +1 -1
- package/cjs/oidc/util/oauthMeta.js +5 -6
- package/cjs/oidc/util/oauthMeta.js.map +1 -1
- package/cjs/oidc/util/pkce.js +1 -12
- package/cjs/oidc/util/pkce.js.map +1 -1
- package/cjs/oidc/util/prepareTokenParams.js +13 -26
- package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
- package/cjs/oidc/util/refreshToken.js +0 -7
- package/cjs/oidc/util/refreshToken.js.map +1 -1
- package/cjs/oidc/util/sharedStorage.js +0 -8
- package/cjs/oidc/util/sharedStorage.js.map +1 -1
- package/cjs/oidc/util/urlParams.js +9 -12
- package/cjs/oidc/util/urlParams.js.map +1 -1
- package/cjs/oidc/util/validateClaims.js +9 -17
- package/cjs/oidc/util/validateClaims.js.map +1 -1
- package/cjs/oidc/util/validateToken.js +1 -6
- package/cjs/oidc/util/validateToken.js.map +1 -1
- package/cjs/oidc/verifyToken.js +13 -23
- package/cjs/oidc/verifyToken.js.map +1 -1
- package/cjs/server/serverStorage.js +9 -27
- package/cjs/server/serverStorage.js.map +1 -1
- package/cjs/services/AutoRenewService.js +1 -17
- package/cjs/services/AutoRenewService.js.map +1 -1
- package/cjs/services/LeaderElectionService.js +1 -23
- package/cjs/services/LeaderElectionService.js.map +1 -1
- package/cjs/services/SyncStorageService.js +3 -37
- package/cjs/services/SyncStorageService.js.map +1 -1
- package/cjs/services/index.js +0 -5
- package/cjs/services/index.js.map +1 -1
- package/cjs/session/api.js +1 -12
- package/cjs/session/api.js.map +1 -1
- package/cjs/session/factory.js +0 -2
- package/cjs/session/factory.js.map +1 -1
- package/cjs/session/index.js +0 -7
- package/cjs/session/index.js.map +1 -1
- package/cjs/session/mixin.js +2 -6
- package/cjs/session/mixin.js.map +1 -1
- package/cjs/storage/BaseStorageManager.js +13 -25
- package/cjs/storage/BaseStorageManager.js.map +1 -1
- package/cjs/storage/SavedObject.js +7 -19
- package/cjs/storage/SavedObject.js.map +1 -1
- package/cjs/storage/index.js +0 -9
- package/cjs/storage/index.js.map +1 -1
- package/cjs/storage/mixin.js +2 -4
- package/cjs/storage/mixin.js.map +1 -1
- package/cjs/storage/options/StorageOptionsConstructor.js +3 -6
- package/cjs/storage/options/StorageOptionsConstructor.js.map +1 -1
- package/cjs/storage/options/browser.js +7 -15
- package/cjs/storage/options/browser.js.map +1 -1
- package/cjs/storage/options/node.js +3 -6
- package/cjs/storage/options/node.js.map +1 -1
- package/cjs/util/PromiseQueue.js +7 -15
- package/cjs/util/PromiseQueue.js.map +1 -1
- package/cjs/util/console.js +3 -7
- package/cjs/util/console.js.map +1 -1
- package/cjs/util/index.js +0 -11
- package/cjs/util/index.js.map +1 -1
- package/cjs/util/misc.js +3 -8
- package/cjs/util/misc.js.map +1 -1
- package/cjs/util/object.js +9 -23
- package/cjs/util/object.js.map +1 -1
- package/cjs/util/types.js +1 -5
- package/cjs/util/types.js.map +1 -1
- package/cjs/util/url.js +5 -14
- package/cjs/util/url.js.map +1 -1
- package/dist/okta-auth-js.authn.min.analyzer.html +3 -3
- package/dist/okta-auth-js.authn.min.js +1 -1
- package/dist/okta-auth-js.authn.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.authn.min.js.map +1 -1
- package/dist/okta-auth-js.core.min.analyzer.html +3 -3
- package/dist/okta-auth-js.core.min.js +1 -1
- package/dist/okta-auth-js.core.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.core.min.js.map +1 -1
- package/dist/okta-auth-js.idx.min.analyzer.html +3 -3
- package/dist/okta-auth-js.idx.min.js +1 -1
- package/dist/okta-auth-js.idx.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.idx.min.js.map +1 -1
- package/dist/okta-auth-js.min.analyzer.html +3 -3
- package/dist/okta-auth-js.min.js +1 -1
- package/dist/okta-auth-js.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.min.js.map +1 -1
- package/dist/okta-auth-js.myaccount.min.analyzer.html +3 -3
- package/dist/okta-auth-js.myaccount.min.js +1 -1
- package/dist/okta-auth-js.myaccount.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.myaccount.min.js.map +1 -1
- package/dist/okta-auth-js.polyfill.js +1 -1
- package/dist/okta-auth-js.polyfill.js.map +1 -1
- package/esm/browser/http/OktaUserAgent.js +2 -2
- package/esm/browser/http/request.js +56 -23
- package/esm/browser/http/request.js.map +1 -1
- package/esm/browser/idx/interact.js +2 -2
- package/esm/browser/idx/interact.js.map +1 -1
- package/esm/browser/idx/run.js +2 -1
- package/esm/browser/idx/run.js.map +1 -1
- package/esm/browser/idx/transactionMeta.js +3 -2
- package/esm/browser/idx/transactionMeta.js.map +1 -1
- package/esm/browser/myaccount/request.js +2 -43
- package/esm/browser/myaccount/request.js.map +1 -1
- package/esm/browser/oidc/endpoints/authorize.js +1 -0
- package/esm/browser/oidc/endpoints/authorize.js.map +1 -1
- package/esm/browser/oidc/exchangeCodeForTokens.js +2 -1
- package/esm/browser/oidc/exchangeCodeForTokens.js.map +1 -1
- package/esm/browser/oidc/handleOAuthResponse.js +17 -16
- package/esm/browser/oidc/handleOAuthResponse.js.map +1 -1
- package/esm/browser/oidc/options/OAuthOptionsConstructor.js +2 -0
- package/esm/browser/oidc/options/OAuthOptionsConstructor.js.map +1 -1
- package/esm/browser/oidc/util/defaultTokenParams.js +3 -1
- package/esm/browser/oidc/util/defaultTokenParams.js.map +1 -1
- package/esm/browser/oidc/util/oauthMeta.js +1 -0
- package/esm/browser/oidc/util/oauthMeta.js.map +1 -1
- package/esm/browser/oidc/util/validateClaims.js +9 -4
- package/esm/browser/oidc/util/validateClaims.js.map +1 -1
- package/esm/browser/oidc/verifyToken.js +2 -2
- package/esm/browser/oidc/verifyToken.js.map +1 -1
- package/esm/browser/package.json +1 -1
- package/esm/node/http/OktaUserAgent.js +2 -2
- package/esm/node/http/request.js +56 -23
- package/esm/node/http/request.js.map +1 -1
- package/esm/node/idx/interact.js +2 -2
- package/esm/node/idx/interact.js.map +1 -1
- package/esm/node/idx/run.js +2 -1
- package/esm/node/idx/run.js.map +1 -1
- package/esm/node/idx/transactionMeta.js +3 -2
- package/esm/node/idx/transactionMeta.js.map +1 -1
- package/esm/node/myaccount/request.js +2 -43
- package/esm/node/myaccount/request.js.map +1 -1
- package/esm/node/oidc/endpoints/authorize.js +1 -0
- package/esm/node/oidc/endpoints/authorize.js.map +1 -1
- package/esm/node/oidc/exchangeCodeForTokens.js +2 -1
- package/esm/node/oidc/exchangeCodeForTokens.js.map +1 -1
- package/esm/node/oidc/handleOAuthResponse.js +17 -16
- package/esm/node/oidc/handleOAuthResponse.js.map +1 -1
- package/esm/node/oidc/options/OAuthOptionsConstructor.js +2 -0
- package/esm/node/oidc/options/OAuthOptionsConstructor.js.map +1 -1
- package/esm/node/oidc/util/defaultTokenParams.js +3 -1
- package/esm/node/oidc/util/defaultTokenParams.js.map +1 -1
- package/esm/node/oidc/util/oauthMeta.js +1 -0
- package/esm/node/oidc/util/oauthMeta.js.map +1 -1
- package/esm/node/oidc/util/validateClaims.js +9 -4
- package/esm/node/oidc/util/validateClaims.js.map +1 -1
- package/esm/node/oidc/verifyToken.js +2 -2
- package/esm/node/oidc/verifyToken.js.map +1 -1
- package/esm/node/package.json +1 -1
- package/package.json +12 -13
- package/polyfill/index.js +8 -5
- package/types/lib/core/options.d.ts +2 -0
- package/types/lib/idx/interact.d.ts +1 -0
- package/types/lib/idx/options.d.ts +2 -0
- package/types/lib/idx/types/meta.d.ts +1 -0
- package/types/lib/idx/types/options.d.ts +1 -0
- package/types/lib/oidc/options/OAuthOptionsConstructor.d.ts +2 -0
- package/types/lib/oidc/types/UserClaims.d.ts +1 -0
- package/types/lib/oidc/types/api.d.ts +1 -0
- package/types/lib/oidc/types/meta.d.ts +1 -1
- package/types/lib/oidc/types/options.d.ts +2 -1
- package/types/lib/oidc/types/proto.d.ts +1 -0
- package/umd/authn.js +1 -1
- package/umd/authn.js.LICENSE.txt +2 -0
- package/umd/authn.js.map +1 -1
- package/umd/core.js +1 -1
- package/umd/core.js.LICENSE.txt +2 -0
- package/umd/core.js.map +1 -1
- package/umd/default.js +1 -1
- package/umd/default.js.LICENSE.txt +2 -0
- package/umd/default.js.map +1 -1
- package/umd/idx.js +1 -1
- package/umd/idx.js.LICENSE.txt +2 -0
- package/umd/idx.js.map +1 -1
- package/umd/myaccount.js +1 -1
- package/umd/myaccount.js.LICENSE.txt +2 -0
- package/umd/myaccount.js.map +1 -1
package/cjs/oidc/mixin/index.js
CHANGED
|
@@ -1,34 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.mixinOAuth = mixinOAuth;
|
|
6
|
-
|
|
7
5
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
-
|
|
9
6
|
var _http = require("../../http");
|
|
10
|
-
|
|
11
7
|
var _util = require("../../util");
|
|
12
|
-
|
|
13
8
|
var crypto = _interopRequireWildcard(require("../../crypto"));
|
|
14
|
-
|
|
15
9
|
var _pkce = _interopRequireDefault(require("../util/pkce"));
|
|
16
|
-
|
|
17
10
|
var _factory = require("../factory");
|
|
18
|
-
|
|
19
11
|
var _TokenManager = require("../TokenManager");
|
|
20
|
-
|
|
21
12
|
var _util2 = require("../util");
|
|
22
|
-
|
|
23
13
|
var _node = require("./node");
|
|
24
|
-
|
|
25
14
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
|
-
|
|
27
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
28
|
-
|
|
29
16
|
function mixinOAuth(Base, TransactionManagerConstructor) {
|
|
30
17
|
var _class;
|
|
31
|
-
|
|
32
18
|
const WithOriginalUri = (0, _node.provideOriginalUri)(Base);
|
|
33
19
|
return _class = class OktaAuthOAuth extends WithOriginalUri {
|
|
34
20
|
constructor(...args) {
|
|
@@ -45,21 +31,23 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
|
|
|
45
31
|
handleLogin: false
|
|
46
32
|
};
|
|
47
33
|
this._tokenQueue = new _util.PromiseQueue();
|
|
48
|
-
this.token = (0, _factory.createTokenAPI)(this, this._tokenQueue);
|
|
34
|
+
this.token = (0, _factory.createTokenAPI)(this, this._tokenQueue);
|
|
49
35
|
|
|
36
|
+
// TokenManager
|
|
50
37
|
this.tokenManager = new _TokenManager.TokenManager(this, this.options.tokenManager);
|
|
51
|
-
}
|
|
52
|
-
|
|
38
|
+
}
|
|
53
39
|
|
|
40
|
+
// inherited from subclass
|
|
54
41
|
clearStorage() {
|
|
55
|
-
super.clearStorage();
|
|
42
|
+
super.clearStorage();
|
|
56
43
|
|
|
44
|
+
// Clear all local tokens
|
|
57
45
|
this.tokenManager.clear();
|
|
58
|
-
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Returns true if both accessToken and idToken are not expired
|
|
59
49
|
// If `autoRenew` option is set, will attempt to renew expired tokens before returning.
|
|
60
50
|
// eslint-disable-next-line complexity
|
|
61
|
-
|
|
62
|
-
|
|
63
51
|
async isAuthenticated(options = {}) {
|
|
64
52
|
// TODO: remove dependency on tokenManager options in next major version - OKTA-473815
|
|
65
53
|
const {
|
|
@@ -71,59 +59,50 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
|
|
|
71
59
|
let {
|
|
72
60
|
accessToken
|
|
73
61
|
} = this.tokenManager.getTokensSync();
|
|
74
|
-
|
|
75
62
|
if (accessToken && this.tokenManager.hasExpired(accessToken)) {
|
|
76
63
|
accessToken = undefined;
|
|
77
|
-
|
|
78
64
|
if (shouldRenew) {
|
|
79
65
|
try {
|
|
80
66
|
accessToken = await this.tokenManager.renew('accessToken');
|
|
81
|
-
} catch {
|
|
67
|
+
} catch {
|
|
68
|
+
// Renew errors will emit an "error" event
|
|
82
69
|
}
|
|
83
70
|
} else if (shouldRemove) {
|
|
84
71
|
this.tokenManager.remove('accessToken');
|
|
85
72
|
}
|
|
86
73
|
}
|
|
87
|
-
|
|
88
74
|
let {
|
|
89
75
|
idToken
|
|
90
76
|
} = this.tokenManager.getTokensSync();
|
|
91
|
-
|
|
92
77
|
if (idToken && this.tokenManager.hasExpired(idToken)) {
|
|
93
78
|
idToken = undefined;
|
|
94
|
-
|
|
95
79
|
if (shouldRenew) {
|
|
96
80
|
try {
|
|
97
81
|
idToken = await this.tokenManager.renew('idToken');
|
|
98
|
-
} catch {
|
|
82
|
+
} catch {
|
|
83
|
+
// Renew errors will emit an "error" event
|
|
99
84
|
}
|
|
100
85
|
} else if (shouldRemove) {
|
|
101
86
|
this.tokenManager.remove('idToken');
|
|
102
87
|
}
|
|
103
88
|
}
|
|
104
|
-
|
|
105
89
|
return !!(accessToken && idToken);
|
|
106
90
|
}
|
|
107
|
-
|
|
108
91
|
async signInWithRedirect(opts = {}) {
|
|
109
92
|
const {
|
|
110
93
|
originalUri,
|
|
111
94
|
...additionalParams
|
|
112
95
|
} = opts;
|
|
113
|
-
|
|
114
96
|
if (this._pending.handleLogin) {
|
|
115
97
|
// Don't trigger second round
|
|
116
98
|
return;
|
|
117
99
|
}
|
|
118
|
-
|
|
119
100
|
this._pending.handleLogin = true;
|
|
120
|
-
|
|
121
101
|
try {
|
|
122
102
|
// Trigger default signIn redirect flow
|
|
123
103
|
if (originalUri) {
|
|
124
104
|
this.setOriginalUri(originalUri);
|
|
125
105
|
}
|
|
126
|
-
|
|
127
106
|
const params = Object.assign({
|
|
128
107
|
// TODO: remove this line when default scopes are changed OKTA-343294
|
|
129
108
|
scopes: this.options.scopes || ['openid', 'email', 'profile']
|
|
@@ -133,7 +112,6 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
|
|
|
133
112
|
this._pending.handleLogin = false;
|
|
134
113
|
}
|
|
135
114
|
}
|
|
136
|
-
|
|
137
115
|
async getUser() {
|
|
138
116
|
const {
|
|
139
117
|
idToken,
|
|
@@ -141,146 +119,123 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
|
|
|
141
119
|
} = this.tokenManager.getTokensSync();
|
|
142
120
|
return this.token.getUserInfo(accessToken, idToken);
|
|
143
121
|
}
|
|
144
|
-
|
|
145
122
|
getIdToken() {
|
|
146
123
|
const {
|
|
147
124
|
idToken
|
|
148
125
|
} = this.tokenManager.getTokensSync();
|
|
149
126
|
return idToken ? idToken.idToken : undefined;
|
|
150
127
|
}
|
|
151
|
-
|
|
152
128
|
getAccessToken() {
|
|
153
129
|
const {
|
|
154
130
|
accessToken
|
|
155
131
|
} = this.tokenManager.getTokensSync();
|
|
156
132
|
return accessToken ? accessToken.accessToken : undefined;
|
|
157
133
|
}
|
|
158
|
-
|
|
159
134
|
getRefreshToken() {
|
|
160
135
|
const {
|
|
161
136
|
refreshToken
|
|
162
137
|
} = this.tokenManager.getTokensSync();
|
|
163
138
|
return refreshToken ? refreshToken.refreshToken : undefined;
|
|
164
139
|
}
|
|
140
|
+
|
|
165
141
|
/**
|
|
166
142
|
* Store parsed tokens from redirect url
|
|
167
143
|
*/
|
|
168
|
-
|
|
169
|
-
|
|
170
144
|
async storeTokensFromRedirect() {
|
|
171
145
|
const {
|
|
172
146
|
tokens
|
|
173
147
|
} = await this.token.parseFromUrl();
|
|
174
148
|
this.tokenManager.setTokens(tokens);
|
|
175
149
|
}
|
|
176
|
-
|
|
177
150
|
isLoginRedirect() {
|
|
178
151
|
return (0, _util2.isLoginRedirect)(this);
|
|
179
152
|
}
|
|
180
|
-
|
|
181
153
|
isPKCE() {
|
|
182
154
|
return !!this.options.pkce;
|
|
183
155
|
}
|
|
184
|
-
|
|
185
156
|
hasResponseType(responseType) {
|
|
186
157
|
let hasResponseType = false;
|
|
187
|
-
|
|
188
158
|
if (Array.isArray(this.options.responseType) && this.options.responseType.length) {
|
|
189
159
|
hasResponseType = this.options.responseType.indexOf(responseType) >= 0;
|
|
190
160
|
} else {
|
|
191
161
|
hasResponseType = this.options.responseType === responseType;
|
|
192
162
|
}
|
|
193
|
-
|
|
194
163
|
return hasResponseType;
|
|
195
164
|
}
|
|
196
|
-
|
|
197
165
|
isAuthorizationCodeFlow() {
|
|
198
166
|
return this.hasResponseType('code');
|
|
199
|
-
}
|
|
200
|
-
|
|
167
|
+
}
|
|
201
168
|
|
|
169
|
+
// Escape hatch method to make arbitrary OKTA API call
|
|
202
170
|
async invokeApiMethod(options) {
|
|
203
171
|
if (!options.accessToken) {
|
|
204
172
|
const accessToken = (await this.tokenManager.getTokens()).accessToken;
|
|
205
173
|
options.accessToken = accessToken === null || accessToken === void 0 ? void 0 : accessToken.accessToken;
|
|
206
174
|
}
|
|
207
|
-
|
|
208
175
|
return (0, _http.httpRequest)(this, options);
|
|
209
|
-
}
|
|
210
|
-
|
|
176
|
+
}
|
|
211
177
|
|
|
178
|
+
// Revokes the access token for the application session
|
|
212
179
|
async revokeAccessToken(accessToken) {
|
|
213
180
|
if (!accessToken) {
|
|
214
181
|
accessToken = (await this.tokenManager.getTokens()).accessToken;
|
|
215
182
|
const accessTokenKey = this.tokenManager.getStorageKeyByType('accessToken');
|
|
216
183
|
this.tokenManager.remove(accessTokenKey);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
|
|
184
|
+
}
|
|
185
|
+
// Access token may have been removed. In this case, we will silently succeed.
|
|
220
186
|
if (!accessToken) {
|
|
221
187
|
return Promise.resolve(null);
|
|
222
188
|
}
|
|
223
|
-
|
|
224
189
|
return this.token.revoke(accessToken);
|
|
225
|
-
}
|
|
226
|
-
|
|
190
|
+
}
|
|
227
191
|
|
|
192
|
+
// Revokes the refresh token for the application session
|
|
228
193
|
async revokeRefreshToken(refreshToken) {
|
|
229
194
|
if (!refreshToken) {
|
|
230
195
|
refreshToken = (await this.tokenManager.getTokens()).refreshToken;
|
|
231
196
|
const refreshTokenKey = this.tokenManager.getStorageKeyByType('refreshToken');
|
|
232
197
|
this.tokenManager.remove(refreshTokenKey);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
|
|
198
|
+
}
|
|
199
|
+
// Refresh token may have been removed. In this case, we will silently succeed.
|
|
236
200
|
if (!refreshToken) {
|
|
237
201
|
return Promise.resolve(null);
|
|
238
202
|
}
|
|
239
|
-
|
|
240
203
|
return this.token.revoke(refreshToken);
|
|
241
204
|
}
|
|
242
|
-
|
|
243
205
|
getSignOutRedirectUrl(options = {}) {
|
|
244
206
|
let {
|
|
245
207
|
idToken,
|
|
246
208
|
postLogoutRedirectUri,
|
|
247
209
|
state
|
|
248
210
|
} = options;
|
|
249
|
-
|
|
250
211
|
if (!idToken) {
|
|
251
212
|
idToken = this.tokenManager.getTokensSync().idToken;
|
|
252
213
|
}
|
|
253
|
-
|
|
254
214
|
if (!idToken) {
|
|
255
215
|
return '';
|
|
256
216
|
}
|
|
257
|
-
|
|
258
217
|
if (!postLogoutRedirectUri) {
|
|
259
218
|
postLogoutRedirectUri = this.options.postLogoutRedirectUri;
|
|
260
219
|
}
|
|
261
|
-
|
|
262
220
|
const logoutUrl = (0, _util2.getOAuthUrls)(this).logoutUrl;
|
|
263
221
|
const idTokenHint = idToken.idToken; // a string
|
|
264
|
-
|
|
265
222
|
let logoutUri = logoutUrl + '?id_token_hint=' + encodeURIComponent(idTokenHint);
|
|
266
|
-
|
|
267
223
|
if (postLogoutRedirectUri) {
|
|
268
224
|
logoutUri += '&post_logout_redirect_uri=' + encodeURIComponent(postLogoutRedirectUri);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
|
|
225
|
+
}
|
|
226
|
+
// State allows option parameters to be passed to logout redirect uri
|
|
272
227
|
if (state) {
|
|
273
228
|
logoutUri += '&state=' + encodeURIComponent(state);
|
|
274
229
|
}
|
|
275
|
-
|
|
276
230
|
return logoutUri;
|
|
277
|
-
}
|
|
278
|
-
// eslint-disable-next-line complexity
|
|
279
|
-
|
|
231
|
+
}
|
|
280
232
|
|
|
233
|
+
// Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.
|
|
234
|
+
// eslint-disable-next-line complexity
|
|
281
235
|
async signOut(options) {
|
|
282
|
-
options = Object.assign({}, options);
|
|
236
|
+
options = Object.assign({}, options);
|
|
283
237
|
|
|
238
|
+
// postLogoutRedirectUri must be whitelisted in Okta Admin UI
|
|
284
239
|
var defaultUri = window.location.origin;
|
|
285
240
|
var currentUri = window.location.href;
|
|
286
241
|
var postLogoutRedirectUri = options.postLogoutRedirectUri || this.options.postLogoutRedirectUri || defaultUri;
|
|
@@ -288,32 +243,27 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
|
|
|
288
243
|
var refreshToken = options.refreshToken;
|
|
289
244
|
var revokeAccessToken = options.revokeAccessToken !== false;
|
|
290
245
|
var revokeRefreshToken = options.revokeRefreshToken !== false;
|
|
291
|
-
|
|
292
246
|
if (revokeRefreshToken && typeof refreshToken === 'undefined') {
|
|
293
247
|
refreshToken = this.tokenManager.getTokensSync().refreshToken;
|
|
294
248
|
}
|
|
295
|
-
|
|
296
249
|
if (revokeAccessToken && typeof accessToken === 'undefined') {
|
|
297
250
|
accessToken = this.tokenManager.getTokensSync().accessToken;
|
|
298
251
|
}
|
|
299
|
-
|
|
300
252
|
if (!options.idToken) {
|
|
301
253
|
options.idToken = this.tokenManager.getTokensSync().idToken;
|
|
302
254
|
}
|
|
303
|
-
|
|
304
255
|
if (revokeRefreshToken && refreshToken) {
|
|
305
256
|
await this.revokeRefreshToken(refreshToken);
|
|
306
257
|
}
|
|
307
|
-
|
|
308
258
|
if (revokeAccessToken && accessToken) {
|
|
309
259
|
await this.revokeAccessToken(accessToken);
|
|
310
260
|
}
|
|
311
|
-
|
|
312
|
-
|
|
261
|
+
const logoutUri = this.getSignOutRedirectUrl({
|
|
262
|
+
...options,
|
|
313
263
|
postLogoutRedirectUri
|
|
314
|
-
});
|
|
264
|
+
});
|
|
265
|
+
// No logoutUri? This can happen if the storage was cleared.
|
|
315
266
|
// Fallback to XHR signOut, then simulate a redirect to the post logout uri
|
|
316
|
-
|
|
317
267
|
if (!logoutUri) {
|
|
318
268
|
// local tokens are cleared once session is closed
|
|
319
269
|
return this.closeSession() // can throw if the user cannot be signed out
|
|
@@ -330,13 +280,11 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
|
|
|
330
280
|
this.tokenManager.clear();
|
|
331
281
|
} else {
|
|
332
282
|
this.tokenManager.addPendingRemoveFlags();
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
|
|
283
|
+
}
|
|
284
|
+
// Flow ends with logout redirect
|
|
336
285
|
window.location.assign(logoutUri);
|
|
337
286
|
}
|
|
338
287
|
}
|
|
339
|
-
|
|
340
288
|
}, (0, _defineProperty2.default)(_class, "crypto", crypto), _class;
|
|
341
289
|
}
|
|
342
290
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["mixinOAuth","Base","TransactionManagerConstructor","WithOriginalUri","provideOriginalUri","OktaAuthOAuth","constructor","args","transactionManager","Object","assign","storageManager","options","pkce","DEFAULT_CODE_CHALLENGE_METHOD","PKCE","generateVerifier","computeChallenge","_pending","handleLogin","_tokenQueue","PromiseQueue","token","createTokenAPI","tokenManager","TokenManager","clearStorage","clear","isAuthenticated","autoRenew","autoRemove","getOptions","shouldRenew","onExpiredToken","shouldRemove","accessToken","getTokensSync","hasExpired","undefined","renew","remove","idToken","signInWithRedirect","opts","originalUri","additionalParams","setOriginalUri","params","scopes","getWithRedirect","getUser","getUserInfo","getIdToken","getAccessToken","getRefreshToken","refreshToken","storeTokensFromRedirect","tokens","parseFromUrl","setTokens","isLoginRedirect","isPKCE","hasResponseType","responseType","Array","isArray","length","indexOf","isAuthorizationCodeFlow","invokeApiMethod","getTokens","httpRequest","revokeAccessToken","accessTokenKey","getStorageKeyByType","Promise","resolve","revoke","revokeRefreshToken","refreshTokenKey","getSignOutRedirectUrl","postLogoutRedirectUri","state","logoutUrl","getOAuthUrls","idTokenHint","logoutUri","encodeURIComponent","signOut","defaultUri","window","location","origin","currentUri","href","closeSession","then","reload","clearTokensBeforeRedirect","addPendingRemoveFlags","crypto"],"sources":["../../../../lib/oidc/mixin/index.ts"],"sourcesContent":["import { httpRequest, RequestOptions } from '../../http';\nimport { OktaAuthConstructor } from '../../base/types';\nimport { \n PromiseQueue,\n} from '../../util';\nimport { CryptoAPI } from '../../crypto/types';\nimport * as crypto from '../../crypto';\nimport {\n AccessToken,\n CustomUserClaims,\n IDToken,\n IsAuthenticatedOptions,\n OAuthResponseType,\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface,\n OktaAuthOAuthOptions,\n PkceAPI,\n PKCETransactionMeta,\n RefreshToken,\n SigninWithRedirectOptions,\n SignoutOptions,\n SignoutRedirectUrlOptions,\n TokenAPI,\n TransactionManagerInterface,\n TransactionManagerConstructor,\n UserClaims,\n} from '../types';\nimport PKCE from '../util/pkce';\nimport { createTokenAPI } from '../factory';\nimport { TokenManager } from '../TokenManager';\nimport { getOAuthUrls, isLoginRedirect } from '../util';\n\nimport { OktaAuthSessionInterface } from '../../session/types';\nimport { provideOriginalUri } from './node';\nexport function mixinOAuth\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TM extends TransactionManagerInterface = TransactionManagerInterface,\n TBase extends OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n = OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n>\n(\n Base: TBase,\n TransactionManagerConstructor: TransactionManagerConstructor<TM>,\n): TBase & OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O, TM>>\n{\n const WithOriginalUri = provideOriginalUri(Base);\n return class OktaAuthOAuth extends WithOriginalUri\n implements OktaAuthOAuthInterface<M, S, O, TM>\n {\n static crypto: CryptoAPI = crypto;\n token: TokenAPI;\n tokenManager: TokenManager;\n transactionManager: TM;\n pkce: PkceAPI;\n\n _pending: { handleLogin: boolean };\n _tokenQueue: PromiseQueue;\n \n constructor(...args: any[]) {\n super(...args);\n\n this.transactionManager = new TransactionManagerConstructor(Object.assign({\n storageManager: this.storageManager,\n }, this.options.transactionManager));\n \n this.pkce = {\n DEFAULT_CODE_CHALLENGE_METHOD: PKCE.DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier: PKCE.generateVerifier,\n computeChallenge: PKCE.computeChallenge\n };\n \n this._pending = { handleLogin: false };\n\n this._tokenQueue = new PromiseQueue();\n\n this.token = createTokenAPI(this, this._tokenQueue);\n\n // TokenManager\n this.tokenManager = new TokenManager(this, this.options.tokenManager);\n }\n\n // inherited from subclass\n clearStorage(): void {\n super.clearStorage();\n \n // Clear all local tokens\n this.tokenManager.clear();\n }\n\n // Returns true if both accessToken and idToken are not expired\n // If `autoRenew` option is set, will attempt to renew expired tokens before returning.\n // eslint-disable-next-line complexity\n async isAuthenticated(options: IsAuthenticatedOptions = {}): Promise<boolean> {\n // TODO: remove dependency on tokenManager options in next major version - OKTA-473815\n const { autoRenew, autoRemove } = this.tokenManager.getOptions();\n\n const shouldRenew = options.onExpiredToken ? options.onExpiredToken === 'renew' : autoRenew;\n const shouldRemove = options.onExpiredToken ? options.onExpiredToken === 'remove' : autoRemove;\n\n let { accessToken } = this.tokenManager.getTokensSync();\n if (accessToken && this.tokenManager.hasExpired(accessToken)) {\n accessToken = undefined;\n if (shouldRenew) {\n try {\n accessToken = await this.tokenManager.renew('accessToken') as AccessToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('accessToken');\n }\n }\n\n let { idToken } = this.tokenManager.getTokensSync();\n if (idToken && this.tokenManager.hasExpired(idToken)) {\n idToken = undefined;\n if (shouldRenew) {\n try {\n idToken = await this.tokenManager.renew('idToken') as IDToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('idToken');\n }\n }\n\n return !!(accessToken && idToken);\n }\n\n\n async signInWithRedirect(opts: SigninWithRedirectOptions = {}) {\n const { originalUri, ...additionalParams } = opts;\n if(this._pending.handleLogin) { \n // Don't trigger second round\n return;\n }\n\n this._pending.handleLogin = true;\n try {\n // Trigger default signIn redirect flow\n if (originalUri) {\n this.setOriginalUri(originalUri);\n }\n const params = Object.assign({\n // TODO: remove this line when default scopes are changed OKTA-343294\n scopes: this.options.scopes || ['openid', 'email', 'profile']\n }, additionalParams);\n await this.token.getWithRedirect(params);\n } finally {\n this._pending.handleLogin = false;\n }\n }\n\n async getUser<T extends CustomUserClaims = CustomUserClaims>(): Promise<UserClaims<T>> {\n const { idToken, accessToken } = this.tokenManager.getTokensSync();\n return this.token.getUserInfo(accessToken, idToken);\n }\n \n getIdToken(): string | undefined {\n const { idToken } = this.tokenManager.getTokensSync();\n return idToken ? idToken.idToken : undefined;\n }\n \n getAccessToken(): string | undefined {\n const { accessToken } = this.tokenManager.getTokensSync();\n return accessToken ? accessToken.accessToken : undefined;\n }\n \n getRefreshToken(): string | undefined {\n const { refreshToken } = this.tokenManager.getTokensSync();\n return refreshToken ? refreshToken.refreshToken : undefined;\n }\n \n /**\n * Store parsed tokens from redirect url\n */\n async storeTokensFromRedirect(): Promise<void> {\n const { tokens } = await this.token.parseFromUrl();\n this.tokenManager.setTokens(tokens);\n }\n \n isLoginRedirect(): boolean {\n return isLoginRedirect(this);\n }\n\n \n isPKCE(): boolean {\n return !!this.options.pkce;\n }\n \n hasResponseType(responseType: OAuthResponseType): boolean {\n let hasResponseType = false;\n if (Array.isArray(this.options.responseType) && this.options.responseType.length) {\n hasResponseType = this.options.responseType.indexOf(responseType) >= 0;\n } else {\n hasResponseType = this.options.responseType === responseType;\n }\n return hasResponseType;\n }\n \n isAuthorizationCodeFlow(): boolean {\n return this.hasResponseType('code');\n }\n\n // Escape hatch method to make arbitrary OKTA API call\n async invokeApiMethod(options: RequestOptions): Promise<unknown> {\n if (!options.accessToken) {\n const accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n options.accessToken = accessToken?.accessToken;\n }\n return httpRequest(this, options);\n }\n \n // Revokes the access token for the application session\n async revokeAccessToken(accessToken?: AccessToken): Promise<unknown> {\n if (!accessToken) {\n accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n const accessTokenKey = this.tokenManager.getStorageKeyByType('accessToken');\n this.tokenManager.remove(accessTokenKey);\n }\n // Access token may have been removed. In this case, we will silently succeed.\n if (!accessToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(accessToken);\n }\n\n // Revokes the refresh token for the application session\n async revokeRefreshToken(refreshToken?: RefreshToken): Promise<unknown> {\n if (!refreshToken) {\n refreshToken = (await this.tokenManager.getTokens()).refreshToken as RefreshToken;\n const refreshTokenKey = this.tokenManager.getStorageKeyByType('refreshToken');\n this.tokenManager.remove(refreshTokenKey);\n }\n // Refresh token may have been removed. In this case, we will silently succeed.\n if (!refreshToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(refreshToken);\n }\n\n getSignOutRedirectUrl(options: SignoutRedirectUrlOptions = {}) {\n let {\n idToken,\n postLogoutRedirectUri,\n state,\n } = options;\n if (!idToken) {\n idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n if (!idToken) {\n return '';\n }\n if (!postLogoutRedirectUri) {\n postLogoutRedirectUri = this.options.postLogoutRedirectUri;\n }\n\n const logoutUrl = getOAuthUrls(this).logoutUrl;\n const idTokenHint = idToken.idToken; // a string\n let logoutUri = logoutUrl + '?id_token_hint=' + encodeURIComponent(idTokenHint);\n if (postLogoutRedirectUri) {\n logoutUri += '&post_logout_redirect_uri=' + encodeURIComponent(postLogoutRedirectUri);\n } \n // State allows option parameters to be passed to logout redirect uri\n if (state) {\n logoutUri += '&state=' + encodeURIComponent(state);\n }\n\n return logoutUri;\n }\n\n // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.\n // eslint-disable-next-line complexity\n async signOut(options?: SignoutOptions): Promise<void> {\n options = Object.assign({}, options);\n \n // postLogoutRedirectUri must be whitelisted in Okta Admin UI\n var defaultUri = window.location.origin;\n var currentUri = window.location.href;\n var postLogoutRedirectUri = options.postLogoutRedirectUri\n || this.options.postLogoutRedirectUri\n || defaultUri;\n \n var accessToken = options.accessToken;\n var refreshToken = options.refreshToken;\n var revokeAccessToken = options.revokeAccessToken !== false;\n var revokeRefreshToken = options.revokeRefreshToken !== false;\n \n if (revokeRefreshToken && typeof refreshToken === 'undefined') {\n refreshToken = this.tokenManager.getTokensSync().refreshToken as RefreshToken;\n }\n\n if (revokeAccessToken && typeof accessToken === 'undefined') {\n accessToken = this.tokenManager.getTokensSync().accessToken as AccessToken;\n }\n \n if (!options.idToken) {\n options.idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n\n if (revokeRefreshToken && refreshToken) {\n await this.revokeRefreshToken(refreshToken);\n }\n\n if (revokeAccessToken && accessToken) {\n await this.revokeAccessToken(accessToken);\n }\n\n const logoutUri = this.getSignOutRedirectUrl({ ...options, postLogoutRedirectUri });\n // No logoutUri? This can happen if the storage was cleared.\n // Fallback to XHR signOut, then simulate a redirect to the post logout uri\n if (!logoutUri) {\n // local tokens are cleared once session is closed\n return this.closeSession() // can throw if the user cannot be signed out\n .then(function() {\n if (postLogoutRedirectUri === currentUri) {\n window.location.reload(); // force a hard reload if URI is not changing\n } else {\n window.location.assign(postLogoutRedirectUri);\n }\n });\n } else {\n if (options.clearTokensBeforeRedirect) {\n // Clear all local tokens\n this.tokenManager.clear();\n } else {\n this.tokenManager.addPendingRemoveFlags();\n }\n // Flow ends with logout redirect\n window.location.assign(logoutUri);\n }\n }\n\n };\n\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["mixinOAuth","Base","TransactionManagerConstructor","WithOriginalUri","provideOriginalUri","OktaAuthOAuth","constructor","args","transactionManager","Object","assign","storageManager","options","pkce","DEFAULT_CODE_CHALLENGE_METHOD","PKCE","generateVerifier","computeChallenge","_pending","handleLogin","_tokenQueue","PromiseQueue","token","createTokenAPI","tokenManager","TokenManager","clearStorage","clear","isAuthenticated","autoRenew","autoRemove","getOptions","shouldRenew","onExpiredToken","shouldRemove","accessToken","getTokensSync","hasExpired","undefined","renew","remove","idToken","signInWithRedirect","opts","originalUri","additionalParams","setOriginalUri","params","scopes","getWithRedirect","getUser","getUserInfo","getIdToken","getAccessToken","getRefreshToken","refreshToken","storeTokensFromRedirect","tokens","parseFromUrl","setTokens","isLoginRedirect","isPKCE","hasResponseType","responseType","Array","isArray","length","indexOf","isAuthorizationCodeFlow","invokeApiMethod","getTokens","httpRequest","revokeAccessToken","accessTokenKey","getStorageKeyByType","Promise","resolve","revoke","revokeRefreshToken","refreshTokenKey","getSignOutRedirectUrl","postLogoutRedirectUri","state","logoutUrl","getOAuthUrls","idTokenHint","logoutUri","encodeURIComponent","signOut","defaultUri","window","location","origin","currentUri","href","closeSession","then","reload","clearTokensBeforeRedirect","addPendingRemoveFlags","crypto"],"sources":["../../../../lib/oidc/mixin/index.ts"],"sourcesContent":["import { httpRequest, RequestOptions } from '../../http';\nimport { OktaAuthConstructor } from '../../base/types';\nimport { \n PromiseQueue,\n} from '../../util';\nimport { CryptoAPI } from '../../crypto/types';\nimport * as crypto from '../../crypto';\nimport {\n AccessToken,\n CustomUserClaims,\n IDToken,\n IsAuthenticatedOptions,\n OAuthResponseType,\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface,\n OktaAuthOAuthOptions,\n PkceAPI,\n PKCETransactionMeta,\n RefreshToken,\n SigninWithRedirectOptions,\n SignoutOptions,\n SignoutRedirectUrlOptions,\n TokenAPI,\n TransactionManagerInterface,\n TransactionManagerConstructor,\n UserClaims,\n} from '../types';\nimport PKCE from '../util/pkce';\nimport { createTokenAPI } from '../factory';\nimport { TokenManager } from '../TokenManager';\nimport { getOAuthUrls, isLoginRedirect } from '../util';\n\nimport { OktaAuthSessionInterface } from '../../session/types';\nimport { provideOriginalUri } from './node';\nexport function mixinOAuth\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TM extends TransactionManagerInterface = TransactionManagerInterface,\n TBase extends OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n = OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n>\n(\n Base: TBase,\n TransactionManagerConstructor: TransactionManagerConstructor<TM>,\n): TBase & OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O, TM>>\n{\n const WithOriginalUri = provideOriginalUri(Base);\n return class OktaAuthOAuth extends WithOriginalUri\n implements OktaAuthOAuthInterface<M, S, O, TM>\n {\n static crypto: CryptoAPI = crypto;\n token: TokenAPI;\n tokenManager: TokenManager;\n transactionManager: TM;\n pkce: PkceAPI;\n\n _pending: { handleLogin: boolean };\n _tokenQueue: PromiseQueue;\n \n constructor(...args: any[]) {\n super(...args);\n\n this.transactionManager = new TransactionManagerConstructor(Object.assign({\n storageManager: this.storageManager,\n }, this.options.transactionManager));\n \n this.pkce = {\n DEFAULT_CODE_CHALLENGE_METHOD: PKCE.DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier: PKCE.generateVerifier,\n computeChallenge: PKCE.computeChallenge\n };\n \n this._pending = { handleLogin: false };\n\n this._tokenQueue = new PromiseQueue();\n\n this.token = createTokenAPI(this, this._tokenQueue);\n\n // TokenManager\n this.tokenManager = new TokenManager(this, this.options.tokenManager);\n }\n\n // inherited from subclass\n clearStorage(): void {\n super.clearStorage();\n \n // Clear all local tokens\n this.tokenManager.clear();\n }\n\n // Returns true if both accessToken and idToken are not expired\n // If `autoRenew` option is set, will attempt to renew expired tokens before returning.\n // eslint-disable-next-line complexity\n async isAuthenticated(options: IsAuthenticatedOptions = {}): Promise<boolean> {\n // TODO: remove dependency on tokenManager options in next major version - OKTA-473815\n const { autoRenew, autoRemove } = this.tokenManager.getOptions();\n\n const shouldRenew = options.onExpiredToken ? options.onExpiredToken === 'renew' : autoRenew;\n const shouldRemove = options.onExpiredToken ? options.onExpiredToken === 'remove' : autoRemove;\n\n let { accessToken } = this.tokenManager.getTokensSync();\n if (accessToken && this.tokenManager.hasExpired(accessToken)) {\n accessToken = undefined;\n if (shouldRenew) {\n try {\n accessToken = await this.tokenManager.renew('accessToken') as AccessToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('accessToken');\n }\n }\n\n let { idToken } = this.tokenManager.getTokensSync();\n if (idToken && this.tokenManager.hasExpired(idToken)) {\n idToken = undefined;\n if (shouldRenew) {\n try {\n idToken = await this.tokenManager.renew('idToken') as IDToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('idToken');\n }\n }\n\n return !!(accessToken && idToken);\n }\n\n\n async signInWithRedirect(opts: SigninWithRedirectOptions = {}) {\n const { originalUri, ...additionalParams } = opts;\n if(this._pending.handleLogin) { \n // Don't trigger second round\n return;\n }\n\n this._pending.handleLogin = true;\n try {\n // Trigger default signIn redirect flow\n if (originalUri) {\n this.setOriginalUri(originalUri);\n }\n const params = Object.assign({\n // TODO: remove this line when default scopes are changed OKTA-343294\n scopes: this.options.scopes || ['openid', 'email', 'profile']\n }, additionalParams);\n await this.token.getWithRedirect(params);\n } finally {\n this._pending.handleLogin = false;\n }\n }\n\n async getUser<T extends CustomUserClaims = CustomUserClaims>(): Promise<UserClaims<T>> {\n const { idToken, accessToken } = this.tokenManager.getTokensSync();\n return this.token.getUserInfo(accessToken, idToken);\n }\n \n getIdToken(): string | undefined {\n const { idToken } = this.tokenManager.getTokensSync();\n return idToken ? idToken.idToken : undefined;\n }\n \n getAccessToken(): string | undefined {\n const { accessToken } = this.tokenManager.getTokensSync();\n return accessToken ? accessToken.accessToken : undefined;\n }\n \n getRefreshToken(): string | undefined {\n const { refreshToken } = this.tokenManager.getTokensSync();\n return refreshToken ? refreshToken.refreshToken : undefined;\n }\n \n /**\n * Store parsed tokens from redirect url\n */\n async storeTokensFromRedirect(): Promise<void> {\n const { tokens } = await this.token.parseFromUrl();\n this.tokenManager.setTokens(tokens);\n }\n \n isLoginRedirect(): boolean {\n return isLoginRedirect(this);\n }\n\n \n isPKCE(): boolean {\n return !!this.options.pkce;\n }\n \n hasResponseType(responseType: OAuthResponseType): boolean {\n let hasResponseType = false;\n if (Array.isArray(this.options.responseType) && this.options.responseType.length) {\n hasResponseType = this.options.responseType.indexOf(responseType) >= 0;\n } else {\n hasResponseType = this.options.responseType === responseType;\n }\n return hasResponseType;\n }\n \n isAuthorizationCodeFlow(): boolean {\n return this.hasResponseType('code');\n }\n\n // Escape hatch method to make arbitrary OKTA API call\n async invokeApiMethod(options: RequestOptions): Promise<unknown> {\n if (!options.accessToken) {\n const accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n options.accessToken = accessToken?.accessToken;\n }\n return httpRequest(this, options);\n }\n \n // Revokes the access token for the application session\n async revokeAccessToken(accessToken?: AccessToken): Promise<unknown> {\n if (!accessToken) {\n accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n const accessTokenKey = this.tokenManager.getStorageKeyByType('accessToken');\n this.tokenManager.remove(accessTokenKey);\n }\n // Access token may have been removed. In this case, we will silently succeed.\n if (!accessToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(accessToken);\n }\n\n // Revokes the refresh token for the application session\n async revokeRefreshToken(refreshToken?: RefreshToken): Promise<unknown> {\n if (!refreshToken) {\n refreshToken = (await this.tokenManager.getTokens()).refreshToken as RefreshToken;\n const refreshTokenKey = this.tokenManager.getStorageKeyByType('refreshToken');\n this.tokenManager.remove(refreshTokenKey);\n }\n // Refresh token may have been removed. In this case, we will silently succeed.\n if (!refreshToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(refreshToken);\n }\n\n getSignOutRedirectUrl(options: SignoutRedirectUrlOptions = {}) {\n let {\n idToken,\n postLogoutRedirectUri,\n state,\n } = options;\n if (!idToken) {\n idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n if (!idToken) {\n return '';\n }\n if (!postLogoutRedirectUri) {\n postLogoutRedirectUri = this.options.postLogoutRedirectUri;\n }\n\n const logoutUrl = getOAuthUrls(this).logoutUrl;\n const idTokenHint = idToken.idToken; // a string\n let logoutUri = logoutUrl + '?id_token_hint=' + encodeURIComponent(idTokenHint);\n if (postLogoutRedirectUri) {\n logoutUri += '&post_logout_redirect_uri=' + encodeURIComponent(postLogoutRedirectUri);\n } \n // State allows option parameters to be passed to logout redirect uri\n if (state) {\n logoutUri += '&state=' + encodeURIComponent(state);\n }\n\n return logoutUri;\n }\n\n // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.\n // eslint-disable-next-line complexity\n async signOut(options?: SignoutOptions): Promise<void> {\n options = Object.assign({}, options);\n \n // postLogoutRedirectUri must be whitelisted in Okta Admin UI\n var defaultUri = window.location.origin;\n var currentUri = window.location.href;\n var postLogoutRedirectUri = options.postLogoutRedirectUri\n || this.options.postLogoutRedirectUri\n || defaultUri;\n \n var accessToken = options.accessToken;\n var refreshToken = options.refreshToken;\n var revokeAccessToken = options.revokeAccessToken !== false;\n var revokeRefreshToken = options.revokeRefreshToken !== false;\n \n if (revokeRefreshToken && typeof refreshToken === 'undefined') {\n refreshToken = this.tokenManager.getTokensSync().refreshToken as RefreshToken;\n }\n\n if (revokeAccessToken && typeof accessToken === 'undefined') {\n accessToken = this.tokenManager.getTokensSync().accessToken as AccessToken;\n }\n \n if (!options.idToken) {\n options.idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n\n if (revokeRefreshToken && refreshToken) {\n await this.revokeRefreshToken(refreshToken);\n }\n\n if (revokeAccessToken && accessToken) {\n await this.revokeAccessToken(accessToken);\n }\n\n const logoutUri = this.getSignOutRedirectUrl({ ...options, postLogoutRedirectUri });\n // No logoutUri? This can happen if the storage was cleared.\n // Fallback to XHR signOut, then simulate a redirect to the post logout uri\n if (!logoutUri) {\n // local tokens are cleared once session is closed\n return this.closeSession() // can throw if the user cannot be signed out\n .then(function() {\n if (postLogoutRedirectUri === currentUri) {\n window.location.reload(); // force a hard reload if URI is not changing\n } else {\n window.location.assign(postLogoutRedirectUri);\n }\n });\n } else {\n if (options.clearTokensBeforeRedirect) {\n // Clear all local tokens\n this.tokenManager.clear();\n } else {\n this.tokenManager.addPendingRemoveFlags();\n }\n // Flow ends with logout redirect\n window.location.assign(logoutUri);\n }\n }\n\n };\n\n}\n"],"mappings":"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"}
|
package/cjs/oidc/mixin/node.js
CHANGED
|
@@ -1,44 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.provideOriginalUri = provideOriginalUri;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
function provideOriginalUri(BaseClass)
|
|
5
|
+
//: TBase & OktaAuthConstructor<O, I & OriginalUriApi>
|
|
6
6
|
{
|
|
7
7
|
return class NodeOriginalUri extends BaseClass {
|
|
8
8
|
setOriginalUri(originalUri, state) {
|
|
9
9
|
// to support multi-tab flows, set a state in constructor or pass as param
|
|
10
10
|
state = state || this.options.state;
|
|
11
|
-
|
|
12
11
|
if (state) {
|
|
13
12
|
const sharedStorage = this.storageManager.getOriginalUriStorage();
|
|
14
13
|
sharedStorage.setItem(state, originalUri);
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
|
-
|
|
18
16
|
getOriginalUri(state) {
|
|
19
17
|
// Prefer shared storage (if state is available)
|
|
20
18
|
state = state || this.options.state;
|
|
21
|
-
|
|
22
19
|
if (state) {
|
|
23
20
|
const sharedStorage = this.storageManager.getOriginalUriStorage();
|
|
24
21
|
const originalUri = sharedStorage.getItem(state);
|
|
25
|
-
|
|
26
22
|
if (originalUri) {
|
|
27
23
|
return originalUri;
|
|
28
24
|
}
|
|
29
25
|
}
|
|
30
26
|
}
|
|
31
|
-
|
|
32
27
|
removeOriginalUri(state) {
|
|
33
28
|
// remove from shared storage
|
|
34
29
|
state = state || this.options.state;
|
|
35
|
-
|
|
36
30
|
if (state) {
|
|
37
31
|
const sharedStorage = this.storageManager.getOriginalUriStorage();
|
|
38
32
|
sharedStorage.removeItem && sharedStorage.removeItem(state);
|
|
39
33
|
}
|
|
40
34
|
}
|
|
41
|
-
|
|
42
35
|
};
|
|
43
36
|
}
|
|
44
37
|
//# sourceMappingURL=node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","names":["provideOriginalUri","BaseClass","NodeOriginalUri","setOriginalUri","originalUri","state","options","sharedStorage","storageManager","getOriginalUriStorage","setItem","getOriginalUri","getItem","removeOriginalUri","removeItem"],"sources":["../../../../lib/oidc/mixin/node.ts"],"sourcesContent":["\nimport { OktaAuthStorageInterface } from '../../storage';\nimport { OktaAuthConstructor } from '../../base';\nimport {\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthOptions,\n OriginalUriApi,\n PKCETransactionMeta,\n} from '../types';\n\nexport function provideOriginalUri\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TBase extends OktaAuthConstructor<OktaAuthStorageInterface<S, O>>\n = OktaAuthConstructor<OktaAuthStorageInterface<S, O>> \n>\n(BaseClass: TBase) //: TBase & OktaAuthConstructor<O, I & OriginalUriApi>\n{\n return class NodeOriginalUri extends BaseClass implements OriginalUriApi {\n setOriginalUri(originalUri: string, state?: string): void {\n // to support multi-tab flows, set a state in constructor or pass as param\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.setItem(state, originalUri);\n }\n }\n \n getOriginalUri(state?: string): string | undefined {\n // Prefer shared storage (if state is available)\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n const originalUri = sharedStorage.getItem(state);\n if (originalUri) {\n return originalUri;\n }\n }\n }\n \n removeOriginalUri(state?: string): void {\n // remove from shared storage\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.removeItem && sharedStorage.removeItem(state);\n }\n }\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.js","names":["provideOriginalUri","BaseClass","NodeOriginalUri","setOriginalUri","originalUri","state","options","sharedStorage","storageManager","getOriginalUriStorage","setItem","getOriginalUri","getItem","removeOriginalUri","removeItem"],"sources":["../../../../lib/oidc/mixin/node.ts"],"sourcesContent":["\nimport { OktaAuthStorageInterface } from '../../storage';\nimport { OktaAuthConstructor } from '../../base';\nimport {\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthOptions,\n OriginalUriApi,\n PKCETransactionMeta,\n} from '../types';\n\nexport function provideOriginalUri\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TBase extends OktaAuthConstructor<OktaAuthStorageInterface<S, O>>\n = OktaAuthConstructor<OktaAuthStorageInterface<S, O>> \n>\n(BaseClass: TBase) //: TBase & OktaAuthConstructor<O, I & OriginalUriApi>\n{\n return class NodeOriginalUri extends BaseClass implements OriginalUriApi {\n setOriginalUri(originalUri: string, state?: string): void {\n // to support multi-tab flows, set a state in constructor or pass as param\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.setItem(state, originalUri);\n }\n }\n \n getOriginalUri(state?: string): string | undefined {\n // Prefer shared storage (if state is available)\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n const originalUri = sharedStorage.getItem(state);\n if (originalUri) {\n return originalUri;\n }\n }\n }\n \n removeOriginalUri(state?: string): void {\n // remove from shared storage\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.removeItem && sharedStorage.removeItem(state);\n }\n }\n };\n}\n"],"mappings":";;;AAWO,SAASA,kBAAkB,CAQjCC,SAAgB;AAAE;AACnB;EACE,OAAO,MAAMC,eAAe,SAASD,SAAS,CAA2B;IACvEE,cAAc,CAACC,WAAmB,EAAEC,KAAc,EAAQ;MACxD;MACAA,KAAK,GAAGA,KAAK,IAAI,IAAI,CAACC,OAAO,CAACD,KAAK;MACnC,IAAIA,KAAK,EAAE;QACT,MAAME,aAAa,GAAG,IAAI,CAACC,cAAc,CAACC,qBAAqB,EAAE;QACjEF,aAAa,CAACG,OAAO,CAACL,KAAK,EAAED,WAAW,CAAC;MAC3C;IACF;IAEAO,cAAc,CAACN,KAAc,EAAsB;MACjD;MACAA,KAAK,GAAGA,KAAK,IAAI,IAAI,CAACC,OAAO,CAACD,KAAK;MACnC,IAAIA,KAAK,EAAE;QACT,MAAME,aAAa,GAAG,IAAI,CAACC,cAAc,CAACC,qBAAqB,EAAE;QACjE,MAAML,WAAW,GAAGG,aAAa,CAACK,OAAO,CAACP,KAAK,CAAC;QAChD,IAAID,WAAW,EAAE;UACf,OAAOA,WAAW;QACpB;MACF;IACF;IAEAS,iBAAiB,CAACR,KAAc,EAAQ;MACtC;MACAA,KAAK,GAAGA,KAAK,IAAI,IAAI,CAACC,OAAO,CAACD,KAAK;MACnC,IAAIA,KAAK,EAAE;QACT,MAAME,aAAa,GAAG,IAAI,CAACC,cAAc,CAACC,qBAAqB,EAAE;QACjEF,aAAa,CAACO,UAAU,IAAIP,aAAa,CAACO,UAAU,CAACT,KAAK,CAAC;MAC7D;IACF;EACF,CAAC;AACH"}
|
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.createOAuthOptionsConstructor = createOAuthOptionsConstructor;
|
|
6
|
-
|
|
7
5
|
var _constants = require("../../constants");
|
|
8
|
-
|
|
9
6
|
var _url = require("../../util/url");
|
|
10
|
-
|
|
11
7
|
var _features = require("../../features");
|
|
12
|
-
|
|
13
8
|
var _options = require("../../http/options");
|
|
14
|
-
|
|
15
9
|
var _node = require("./node");
|
|
16
|
-
|
|
17
10
|
var _AuthSdkError = _interopRequireDefault(require("../../errors/AuthSdkError"));
|
|
18
|
-
|
|
19
11
|
/*!
|
|
20
12
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
21
13
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -27,40 +19,40 @@ var _AuthSdkError = _interopRequireDefault(require("../../errors/AuthSdkError"))
|
|
|
27
19
|
*
|
|
28
20
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
29
21
|
*/
|
|
22
|
+
|
|
30
23
|
function assertValidConfig(args) {
|
|
31
24
|
args = args || {};
|
|
32
25
|
var scopes = args.scopes;
|
|
33
|
-
|
|
34
26
|
if (scopes && !Array.isArray(scopes)) {
|
|
35
27
|
throw new _AuthSdkError.default('scopes must be a array of strings. ' + 'Required usage: new OktaAuth({scopes: ["openid", "email"]})');
|
|
36
|
-
}
|
|
37
|
-
|
|
28
|
+
}
|
|
38
29
|
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
39
31
|
var issuer = args.issuer;
|
|
40
|
-
|
|
41
32
|
if (!issuer) {
|
|
42
33
|
throw new _AuthSdkError.default('No issuer passed to constructor. ' + 'Required usage: new OktaAuth({issuer: "https://{yourOktaDomain}.com/oauth2/{authServerId}"})');
|
|
43
34
|
}
|
|
44
|
-
|
|
45
35
|
var isUrlRegex = new RegExp('^http?s?://.+');
|
|
46
|
-
|
|
47
36
|
if (!isUrlRegex.test(issuer)) {
|
|
48
37
|
throw new _AuthSdkError.default('Issuer must be a valid URL. ' + 'Required usage: new OktaAuth({issuer: "https://{yourOktaDomain}.com/oauth2/{authServerId}"})');
|
|
49
38
|
}
|
|
50
|
-
|
|
51
39
|
if (issuer.indexOf('-admin.') !== -1) {
|
|
52
40
|
throw new _AuthSdkError.default('Issuer URL passed to constructor contains "-admin" in subdomain. ' + 'Required usage: new OktaAuth({issuer: "https://{yourOktaDomain}.com})');
|
|
53
41
|
}
|
|
54
42
|
}
|
|
55
|
-
|
|
56
43
|
function createOAuthOptionsConstructor() {
|
|
57
44
|
const HttpOptionsConstructor = (0, _options.createHttpOptionsConstructor)();
|
|
58
45
|
return class OAuthOptionsConstructor extends HttpOptionsConstructor {
|
|
59
46
|
// CustomUrls
|
|
47
|
+
|
|
60
48
|
// TokenParams
|
|
49
|
+
|
|
61
50
|
// Additional options
|
|
51
|
+
|
|
62
52
|
// For server-side web applications ONLY!
|
|
53
|
+
|
|
63
54
|
// Workaround for bad client time/clock
|
|
55
|
+
|
|
64
56
|
// eslint-disable-next-line max-statements
|
|
65
57
|
constructor(options) {
|
|
66
58
|
super(options);
|
|
@@ -72,10 +64,8 @@ function createOAuthOptionsConstructor() {
|
|
|
72
64
|
this.revokeUrl = (0, _url.removeTrailingSlash)(options.revokeUrl);
|
|
73
65
|
this.logoutUrl = (0, _url.removeTrailingSlash)(options.logoutUrl);
|
|
74
66
|
this.pkce = options.pkce === false ? false : true; // PKCE defaults to true
|
|
75
|
-
|
|
76
67
|
this.clientId = options.clientId;
|
|
77
68
|
this.redirectUri = options.redirectUri;
|
|
78
|
-
|
|
79
69
|
if ((0, _features.isBrowser)()) {
|
|
80
70
|
this.redirectUri = (0, _url.toAbsoluteUrl)(options.redirectUri, window.location.origin); // allow relative URIs
|
|
81
71
|
}
|
|
@@ -83,11 +73,13 @@ function createOAuthOptionsConstructor() {
|
|
|
83
73
|
this.responseType = options.responseType;
|
|
84
74
|
this.responseMode = options.responseMode;
|
|
85
75
|
this.state = options.state;
|
|
86
|
-
this.scopes = options.scopes;
|
|
87
|
-
|
|
76
|
+
this.scopes = options.scopes;
|
|
77
|
+
// Give the developer the ability to disable token signature validation.
|
|
88
78
|
this.ignoreSignature = !!options.ignoreSignature;
|
|
89
79
|
this.codeChallenge = options.codeChallenge;
|
|
90
80
|
this.codeChallengeMethod = options.codeChallengeMethod;
|
|
81
|
+
this.acrValues = options.acrValues;
|
|
82
|
+
this.maxAge = options.maxAge;
|
|
91
83
|
this.tokenManager = options.tokenManager;
|
|
92
84
|
this.postLogoutRedirectUri = options.postLogoutRedirectUri;
|
|
93
85
|
this.restoreOriginalUri = options.restoreOriginalUri;
|
|
@@ -96,25 +88,26 @@ function createOAuthOptionsConstructor() {
|
|
|
96
88
|
...options.transactionManager
|
|
97
89
|
};
|
|
98
90
|
this.clientSecret = options.clientSecret;
|
|
99
|
-
this.setLocation = options.setLocation;
|
|
91
|
+
this.setLocation = options.setLocation;
|
|
92
|
+
|
|
93
|
+
// As some end user's devices can have their date
|
|
100
94
|
// and time incorrectly set, allow for the disabling
|
|
101
95
|
// of the jwt liftetime validation
|
|
96
|
+
this.ignoreLifetime = !!options.ignoreLifetime;
|
|
102
97
|
|
|
103
|
-
|
|
98
|
+
// Digital clocks will drift over time, so the server
|
|
104
99
|
// can misalign with the time reported by the browser.
|
|
105
100
|
// The maxClockSkew allows relaxing the time-based
|
|
106
101
|
// validation of tokens (in seconds, not milliseconds).
|
|
107
102
|
// It currently defaults to 300, because 5 min is the
|
|
108
103
|
// default maximum tolerance allowed by Kerberos.
|
|
109
104
|
// (https://technet.microsoft.com/en-us/library/cc976357.aspx)
|
|
110
|
-
|
|
111
105
|
if (!options.maxClockSkew && options.maxClockSkew !== 0) {
|
|
112
106
|
this.maxClockSkew = _constants.DEFAULT_MAX_CLOCK_SKEW;
|
|
113
107
|
} else {
|
|
114
108
|
this.maxClockSkew = options.maxClockSkew;
|
|
115
109
|
}
|
|
116
110
|
}
|
|
117
|
-
|
|
118
111
|
};
|
|
119
112
|
}
|
|
120
113
|
//# sourceMappingURL=OAuthOptionsConstructor.js.map
|