@okta/okta-auth-js 5.8.0 → 5.10.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.
Files changed (417) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +12 -2
  3. package/cjs/OktaAuth.js +34 -13
  4. package/cjs/OktaAuth.js.map +1 -1
  5. package/cjs/OktaUserAgent.js +2 -2
  6. package/cjs/OktaUserAgent.js.map +1 -1
  7. package/cjs/TokenManager.js +24 -2
  8. package/cjs/TokenManager.js.map +1 -1
  9. package/cjs/TransactionManager.js +6 -2
  10. package/cjs/TransactionManager.js.map +1 -1
  11. package/cjs/features.js +1 -1
  12. package/cjs/features.js.map +1 -1
  13. package/cjs/idx/authenticate.js +3 -18
  14. package/cjs/idx/authenticate.js.map +1 -1
  15. package/cjs/idx/authenticator/Authenticator.js +14 -0
  16. package/cjs/idx/authenticator/Authenticator.js.map +1 -0
  17. package/cjs/idx/authenticator/OktaPassword.js +31 -0
  18. package/cjs/idx/authenticator/OktaPassword.js.map +1 -0
  19. package/cjs/idx/authenticator/OktaVerifyTotp.js +17 -0
  20. package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -0
  21. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +50 -0
  22. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -0
  23. package/cjs/idx/authenticator/SecurityQuestionVerification.js +31 -0
  24. package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -0
  25. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +34 -0
  26. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -0
  27. package/cjs/idx/authenticator/getAuthenticator.js +42 -0
  28. package/cjs/idx/authenticator/getAuthenticator.js.map +1 -0
  29. package/cjs/idx/authenticator/index.js +80 -0
  30. package/cjs/idx/authenticator/index.js.map +1 -0
  31. package/cjs/idx/cancel.js +5 -0
  32. package/cjs/idx/cancel.js.map +1 -1
  33. package/cjs/idx/flow/AuthenticationFlow.js +32 -0
  34. package/cjs/idx/flow/AuthenticationFlow.js.map +1 -0
  35. package/cjs/idx/flow/FlowSpecification.js +39 -0
  36. package/cjs/idx/flow/FlowSpecification.js.map +1 -0
  37. package/cjs/idx/flow/PasswordRecoveryFlow.js +28 -0
  38. package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -0
  39. package/{esm/crypto/browser.js → cjs/idx/flow/RegistrationFlow.js} +16 -12
  40. package/cjs/idx/flow/RegistrationFlow.js.map +1 -0
  41. package/cjs/idx/flow/RemediationFlow.js +2 -0
  42. package/{esm/types/Cookies.js.map → cjs/idx/flow/RemediationFlow.js.map} +1 -1
  43. package/cjs/idx/flow/index.js +67 -0
  44. package/cjs/idx/flow/index.js.map +1 -0
  45. package/cjs/idx/index.js +39 -0
  46. package/cjs/idx/index.js.map +1 -1
  47. package/cjs/idx/interact.js +8 -2
  48. package/cjs/idx/interact.js.map +1 -1
  49. package/cjs/idx/poll.js +59 -0
  50. package/cjs/idx/poll.js.map +1 -0
  51. package/cjs/idx/proceed.js +49 -0
  52. package/cjs/idx/proceed.js.map +1 -0
  53. package/cjs/idx/recoverPassword.js +3 -17
  54. package/cjs/idx/recoverPassword.js.map +1 -1
  55. package/cjs/idx/register.js +22 -20
  56. package/cjs/idx/register.js.map +1 -1
  57. package/cjs/idx/remediate.js +40 -93
  58. package/cjs/idx/remediate.js.map +1 -1
  59. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +9 -12
  60. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  61. package/cjs/idx/remediators/AuthenticatorVerificationData.js +6 -9
  62. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  63. package/cjs/idx/remediators/Base/AuthenticatorData.js +43 -32
  64. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  65. package/cjs/idx/remediators/Base/Remediator.js +51 -20
  66. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  67. package/cjs/idx/remediators/Base/SelectAuthenticator.js +16 -16
  68. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  69. package/cjs/idx/remediators/Base/VerifyAuthenticator.js +8 -28
  70. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  71. package/{esm/idx/remediators/RedirectIdp.js → cjs/idx/remediators/ChallengePoll.js} +13 -25
  72. package/cjs/idx/remediators/ChallengePoll.js.map +1 -0
  73. package/cjs/idx/remediators/EnrollPoll.js +56 -0
  74. package/cjs/idx/remediators/EnrollPoll.js.map +1 -0
  75. package/cjs/idx/remediators/Identify.js +4 -36
  76. package/cjs/idx/remediators/Identify.js.map +1 -1
  77. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +23 -2
  78. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  79. package/cjs/idx/remediators/Skip.js +7 -0
  80. package/cjs/idx/remediators/Skip.js.map +1 -1
  81. package/cjs/idx/remediators/index.js +26 -0
  82. package/cjs/idx/remediators/index.js.map +1 -1
  83. package/cjs/idx/run.js +18 -20
  84. package/cjs/idx/run.js.map +1 -1
  85. package/cjs/idx/startTransaction.js +2 -0
  86. package/cjs/idx/startTransaction.js.map +1 -1
  87. package/cjs/idx/transactionMeta.js +67 -42
  88. package/cjs/idx/transactionMeta.js.map +1 -1
  89. package/cjs/idx/types/FlowIdentifier.js +2 -0
  90. package/{esm/types/AuthState.js.map → cjs/idx/types/FlowIdentifier.js.map} +1 -1
  91. package/cjs/idx/types/idx-js.js.map +1 -1
  92. package/cjs/idx/types/index.js +18 -1
  93. package/cjs/idx/types/index.js.map +1 -1
  94. package/cjs/oidc/endpoints/authorize.js +4 -1
  95. package/cjs/oidc/endpoints/authorize.js.map +1 -1
  96. package/cjs/types/Token.js.map +1 -1
  97. package/cjs/types/Transaction.js.map +1 -1
  98. package/dist/okta-auth-js.min.js +1 -1
  99. package/dist/okta-auth-js.min.js.map +1 -1
  100. package/dist/okta-auth-js.umd.js +1 -1
  101. package/dist/okta-auth-js.umd.js.map +1 -1
  102. package/esm/index.js +8580 -16
  103. package/esm/index.js.map +1 -1
  104. package/lib/TokenManager.d.ts +2 -0
  105. package/lib/TransactionManager.d.ts +1 -0
  106. package/lib/idx/authenticator/Authenticator.d.ts +12 -0
  107. package/lib/idx/authenticator/OktaPassword.d.ts +11 -0
  108. package/lib/idx/authenticator/OktaVerifyTotp.d.ts +9 -0
  109. package/lib/idx/authenticator/SecurityQuestionEnrollment.d.ts +28 -0
  110. package/lib/idx/authenticator/SecurityQuestionVerification.d.ts +14 -0
  111. package/lib/idx/authenticator/VerificationCodeAuthenticator.d.ts +10 -0
  112. package/lib/idx/authenticator/getAuthenticator.d.ts +3 -0
  113. package/lib/idx/authenticator/index.d.ts +6 -0
  114. package/{esm/crypto/webcrypto.js → lib/idx/flow/AuthenticationFlow.d.ts} +3 -4
  115. package/lib/idx/flow/FlowSpecification.d.ts +8 -0
  116. package/{esm/oidc/endpoints/index.js → lib/idx/flow/PasswordRecoveryFlow.d.ts} +3 -5
  117. package/{esm/tx/TransactionState.js → lib/idx/flow/RegistrationFlow.d.ts} +3 -3
  118. package/{esm/crypto/index.js → lib/idx/flow/RemediationFlow.d.ts} +3 -6
  119. package/lib/idx/{flowMonitors → flow}/index.d.ts +5 -4
  120. package/lib/idx/index.d.ts +3 -0
  121. package/lib/idx/interact.d.ts +1 -0
  122. package/lib/idx/poll.d.ts +13 -0
  123. package/lib/idx/proceed.d.ts +21 -0
  124. package/lib/idx/register.d.ts +1 -1
  125. package/lib/idx/remediators/AuthenticatorEnrollmentData.d.ts +9 -5
  126. package/lib/idx/remediators/AuthenticatorVerificationData.d.ts +0 -1
  127. package/lib/idx/remediators/Base/AuthenticatorData.d.ts +8 -3
  128. package/lib/idx/remediators/Base/Remediator.d.ts +9 -6
  129. package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +5 -4
  130. package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +8 -4
  131. package/lib/idx/remediators/ChallengePoll.d.ts +15 -0
  132. package/{esm/tx/util.js → lib/idx/remediators/EnrollPoll.d.ts} +11 -13
  133. package/lib/idx/remediators/Identify.d.ts +1 -3
  134. package/lib/idx/remediators/SelectAuthenticatorAuthenticate.d.ts +6 -2
  135. package/lib/idx/remediators/Skip.d.ts +3 -0
  136. package/lib/idx/remediators/index.d.ts +2 -0
  137. package/lib/idx/run.d.ts +8 -10
  138. package/lib/idx/transactionMeta.d.ts +24 -1
  139. package/lib/idx/types/FlowIdentifier.d.ts +1 -0
  140. package/lib/idx/types/idx-js.d.ts +52 -1
  141. package/lib/idx/types/index.d.ts +16 -3
  142. package/lib/types/OktaAuthOptions.d.ts +3 -0
  143. package/lib/types/Token.d.ts +1 -0
  144. package/lib/types/Transaction.d.ts +2 -0
  145. package/lib/types/api.d.ts +15 -2
  146. package/package.json +16 -8
  147. package/cjs/idx/flowMonitors/AuthenticationFlowMonitor.js +0 -45
  148. package/cjs/idx/flowMonitors/AuthenticationFlowMonitor.js.map +0 -1
  149. package/cjs/idx/flowMonitors/FlowMonitor.js +0 -69
  150. package/cjs/idx/flowMonitors/FlowMonitor.js.map +0 -1
  151. package/cjs/idx/flowMonitors/PasswordRecoveryFlowMonitor.js +0 -55
  152. package/cjs/idx/flowMonitors/PasswordRecoveryFlowMonitor.js.map +0 -1
  153. package/cjs/idx/flowMonitors/RegistrationFlowMonitor.js +0 -35
  154. package/cjs/idx/flowMonitors/RegistrationFlowMonitor.js.map +0 -1
  155. package/cjs/idx/flowMonitors/index.js +0 -54
  156. package/cjs/idx/flowMonitors/index.js.map +0 -1
  157. package/esm/AuthStateManager.js +0 -214
  158. package/esm/AuthStateManager.js.map +0 -1
  159. package/esm/OktaAuth.js +0 -705
  160. package/esm/OktaAuth.js.map +0 -1
  161. package/esm/OktaUserAgent.js +0 -49
  162. package/esm/OktaUserAgent.js.map +0 -1
  163. package/esm/PromiseQueue.js +0 -71
  164. package/esm/PromiseQueue.js.map +0 -1
  165. package/esm/SavedObject.js +0 -91
  166. package/esm/SavedObject.js.map +0 -1
  167. package/esm/StorageManager.js +0 -190
  168. package/esm/StorageManager.js.map +0 -1
  169. package/esm/TokenManager.js +0 -455
  170. package/esm/TokenManager.js.map +0 -1
  171. package/esm/TransactionManager.js +0 -324
  172. package/esm/TransactionManager.js.map +0 -1
  173. package/esm/browser/browserStorage.js +0 -256
  174. package/esm/browser/browserStorage.js.map +0 -1
  175. package/esm/browser/fingerprint.js +0 -74
  176. package/esm/browser/fingerprint.js.map +0 -1
  177. package/esm/builderUtil.js +0 -56
  178. package/esm/builderUtil.js.map +0 -1
  179. package/esm/clock.js +0 -32
  180. package/esm/clock.js.map +0 -1
  181. package/esm/constants.js +0 -36
  182. package/esm/constants.js.map +0 -1
  183. package/esm/crypto/base64.js +0 -66
  184. package/esm/crypto/base64.js.map +0 -1
  185. package/esm/crypto/browser.js.map +0 -1
  186. package/esm/crypto/index.js.map +0 -1
  187. package/esm/crypto/node.js +0 -54
  188. package/esm/crypto/node.js.map +0 -1
  189. package/esm/crypto/oidcHash.js +0 -27
  190. package/esm/crypto/oidcHash.js.map +0 -1
  191. package/esm/crypto/verifyToken.js +0 -39
  192. package/esm/crypto/verifyToken.js.map +0 -1
  193. package/esm/crypto/webcrypto.js.map +0 -1
  194. package/esm/errors/AuthApiError.js +0 -30
  195. package/esm/errors/AuthApiError.js.map +0 -1
  196. package/esm/errors/AuthPollStopError.js +0 -20
  197. package/esm/errors/AuthPollStopError.js.map +0 -1
  198. package/esm/errors/AuthSdkError.js +0 -29
  199. package/esm/errors/AuthSdkError.js.map +0 -1
  200. package/esm/errors/CustomError.js +0 -21
  201. package/esm/errors/CustomError.js.map +0 -1
  202. package/esm/errors/OAuthError.js +0 -22
  203. package/esm/errors/OAuthError.js.map +0 -1
  204. package/esm/errors/index.js +0 -22
  205. package/esm/errors/index.js.map +0 -1
  206. package/esm/features.js +0 -64
  207. package/esm/features.js.map +0 -1
  208. package/esm/fetch/fetchRequest.js +0 -92
  209. package/esm/fetch/fetchRequest.js.map +0 -1
  210. package/esm/http/headers.js +0 -17
  211. package/esm/http/headers.js.map +0 -1
  212. package/esm/http/index.js +0 -3
  213. package/esm/http/index.js.map +0 -1
  214. package/esm/http/request.js +0 -145
  215. package/esm/http/request.js.map +0 -1
  216. package/esm/idx/authenticate.js +0 -47
  217. package/esm/idx/authenticate.js.map +0 -1
  218. package/esm/idx/cancel.js +0 -32
  219. package/esm/idx/cancel.js.map +0 -1
  220. package/esm/idx/flowMonitors/AuthenticationFlowMonitor.js +0 -41
  221. package/esm/idx/flowMonitors/AuthenticationFlowMonitor.js.map +0 -1
  222. package/esm/idx/flowMonitors/FlowMonitor.js +0 -73
  223. package/esm/idx/flowMonitors/FlowMonitor.js.map +0 -1
  224. package/esm/idx/flowMonitors/PasswordRecoveryFlowMonitor.js +0 -57
  225. package/esm/idx/flowMonitors/PasswordRecoveryFlowMonitor.js.map +0 -1
  226. package/esm/idx/flowMonitors/RegistrationFlowMonitor.js +0 -28
  227. package/esm/idx/flowMonitors/RegistrationFlowMonitor.js.map +0 -1
  228. package/esm/idx/flowMonitors/index.js +0 -16
  229. package/esm/idx/flowMonitors/index.js.map +0 -1
  230. package/esm/idx/handleInteractionCodeRedirect.js +0 -64
  231. package/esm/idx/handleInteractionCodeRedirect.js.map +0 -1
  232. package/esm/idx/headers.js +0 -39
  233. package/esm/idx/headers.js.map +0 -1
  234. package/esm/idx/index.js +0 -20
  235. package/esm/idx/index.js.map +0 -1
  236. package/esm/idx/interact.js +0 -86
  237. package/esm/idx/interact.js.map +0 -1
  238. package/esm/idx/introspect.js +0 -61
  239. package/esm/idx/introspect.js.map +0 -1
  240. package/esm/idx/recoverPassword.js +0 -46
  241. package/esm/idx/recoverPassword.js.map +0 -1
  242. package/esm/idx/register.js +0 -63
  243. package/esm/idx/register.js.map +0 -1
  244. package/esm/idx/remediate.js +0 -302
  245. package/esm/idx/remediate.js.map +0 -1
  246. package/esm/idx/remediators/AuthenticatorEnrollmentData.js +0 -68
  247. package/esm/idx/remediators/AuthenticatorEnrollmentData.js.map +0 -1
  248. package/esm/idx/remediators/AuthenticatorVerificationData.js +0 -66
  249. package/esm/idx/remediators/AuthenticatorVerificationData.js.map +0 -1
  250. package/esm/idx/remediators/Base/AuthenticatorData.js +0 -105
  251. package/esm/idx/remediators/Base/AuthenticatorData.js.map +0 -1
  252. package/esm/idx/remediators/Base/Remediator.js +0 -221
  253. package/esm/idx/remediators/Base/Remediator.js.map +0 -1
  254. package/esm/idx/remediators/Base/SelectAuthenticator.js +0 -140
  255. package/esm/idx/remediators/Base/SelectAuthenticator.js.map +0 -1
  256. package/esm/idx/remediators/Base/VerifyAuthenticator.js +0 -65
  257. package/esm/idx/remediators/Base/VerifyAuthenticator.js.map +0 -1
  258. package/esm/idx/remediators/ChallengeAuthenticator.js +0 -18
  259. package/esm/idx/remediators/ChallengeAuthenticator.js.map +0 -1
  260. package/esm/idx/remediators/EnrollAuthenticator.js +0 -18
  261. package/esm/idx/remediators/EnrollAuthenticator.js.map +0 -1
  262. package/esm/idx/remediators/EnrollProfile.js +0 -79
  263. package/esm/idx/remediators/EnrollProfile.js.map +0 -1
  264. package/esm/idx/remediators/Identify.js +0 -87
  265. package/esm/idx/remediators/Identify.js.map +0 -1
  266. package/esm/idx/remediators/ReEnrollAuthenticator.js +0 -45
  267. package/esm/idx/remediators/ReEnrollAuthenticator.js.map +0 -1
  268. package/esm/idx/remediators/RedirectIdp.js.map +0 -1
  269. package/esm/idx/remediators/ResetAuthenticator.js +0 -18
  270. package/esm/idx/remediators/ResetAuthenticator.js.map +0 -1
  271. package/esm/idx/remediators/SelectAuthenticatorAuthenticate.js +0 -18
  272. package/esm/idx/remediators/SelectAuthenticatorAuthenticate.js.map +0 -1
  273. package/esm/idx/remediators/SelectAuthenticatorEnroll.js +0 -18
  274. package/esm/idx/remediators/SelectAuthenticatorEnroll.js.map +0 -1
  275. package/esm/idx/remediators/SelectEnrollProfile.js +0 -24
  276. package/esm/idx/remediators/SelectEnrollProfile.js.map +0 -1
  277. package/esm/idx/remediators/Skip.js +0 -23
  278. package/esm/idx/remediators/Skip.js.map +0 -1
  279. package/esm/idx/remediators/index.js +0 -26
  280. package/esm/idx/remediators/index.js.map +0 -1
  281. package/esm/idx/remediators/util.js +0 -35
  282. package/esm/idx/remediators/util.js.map +0 -1
  283. package/esm/idx/run.js +0 -222
  284. package/esm/idx/run.js.map +0 -1
  285. package/esm/idx/startTransaction.js +0 -27
  286. package/esm/idx/startTransaction.js.map +0 -1
  287. package/esm/idx/transactionMeta.js +0 -125
  288. package/esm/idx/transactionMeta.js.map +0 -1
  289. package/esm/idx/types/idx-js.js +0 -20
  290. package/esm/idx/types/idx-js.js.map +0 -1
  291. package/esm/idx/types/index.js +0 -44
  292. package/esm/idx/types/index.js.map +0 -1
  293. package/esm/oidc/decodeToken.js +0 -31
  294. package/esm/oidc/decodeToken.js.map +0 -1
  295. package/esm/oidc/endpoints/authorize.js +0 -61
  296. package/esm/oidc/endpoints/authorize.js.map +0 -1
  297. package/esm/oidc/endpoints/index.js.map +0 -1
  298. package/esm/oidc/endpoints/token.js +0 -97
  299. package/esm/oidc/endpoints/token.js.map +0 -1
  300. package/esm/oidc/endpoints/well-known.js +0 -58
  301. package/esm/oidc/endpoints/well-known.js.map +0 -1
  302. package/esm/oidc/exchangeCodeForTokens.js +0 -69
  303. package/esm/oidc/exchangeCodeForTokens.js.map +0 -1
  304. package/esm/oidc/getToken.js +0 -180
  305. package/esm/oidc/getToken.js.map +0 -1
  306. package/esm/oidc/getUserInfo.js +0 -82
  307. package/esm/oidc/getUserInfo.js.map +0 -1
  308. package/esm/oidc/getWithPopup.js +0 -34
  309. package/esm/oidc/getWithPopup.js.map +0 -1
  310. package/esm/oidc/getWithRedirect.js +0 -61
  311. package/esm/oidc/getWithRedirect.js.map +0 -1
  312. package/esm/oidc/getWithoutPrompt.js +0 -29
  313. package/esm/oidc/getWithoutPrompt.js.map +0 -1
  314. package/esm/oidc/handleOAuthResponse.js +0 -148
  315. package/esm/oidc/handleOAuthResponse.js.map +0 -1
  316. package/esm/oidc/index.js +0 -29
  317. package/esm/oidc/index.js.map +0 -1
  318. package/esm/oidc/parseFromUrl.js +0 -144
  319. package/esm/oidc/parseFromUrl.js.map +0 -1
  320. package/esm/oidc/renewToken.js +0 -85
  321. package/esm/oidc/renewToken.js.map +0 -1
  322. package/esm/oidc/renewTokens.js +0 -74
  323. package/esm/oidc/renewTokens.js.map +0 -1
  324. package/esm/oidc/renewTokensWithRefresh.js +0 -55
  325. package/esm/oidc/renewTokensWithRefresh.js.map +0 -1
  326. package/esm/oidc/revokeToken.js +0 -57
  327. package/esm/oidc/revokeToken.js.map +0 -1
  328. package/esm/oidc/util/browser.js +0 -74
  329. package/esm/oidc/util/browser.js.map +0 -1
  330. package/esm/oidc/util/defaultTokenParams.js +0 -42
  331. package/esm/oidc/util/defaultTokenParams.js.map +0 -1
  332. package/esm/oidc/util/errors.js +0 -31
  333. package/esm/oidc/util/errors.js.map +0 -1
  334. package/esm/oidc/util/index.js +0 -25
  335. package/esm/oidc/util/index.js.map +0 -1
  336. package/esm/oidc/util/loginRedirect.js +0 -88
  337. package/esm/oidc/util/loginRedirect.js.map +0 -1
  338. package/esm/oidc/util/oauth.js +0 -70
  339. package/esm/oidc/util/oauth.js.map +0 -1
  340. package/esm/oidc/util/pkce.js +0 -55
  341. package/esm/oidc/util/pkce.js.map +0 -1
  342. package/esm/oidc/util/prepareTokenParams.js +0 -75
  343. package/esm/oidc/util/prepareTokenParams.js.map +0 -1
  344. package/esm/oidc/util/refreshToken.js +0 -24
  345. package/esm/oidc/util/refreshToken.js.map +0 -1
  346. package/esm/oidc/util/urlParams.js +0 -54
  347. package/esm/oidc/util/urlParams.js.map +0 -1
  348. package/esm/oidc/util/validateClaims.js +0 -53
  349. package/esm/oidc/util/validateClaims.js.map +0 -1
  350. package/esm/oidc/util/validateToken.js +0 -21
  351. package/esm/oidc/util/validateToken.js.map +0 -1
  352. package/esm/oidc/verifyToken.js +0 -78
  353. package/esm/oidc/verifyToken.js.map +0 -1
  354. package/esm/options.js +0 -144
  355. package/esm/options.js.map +0 -1
  356. package/esm/server/serverStorage.js +0 -111
  357. package/esm/server/serverStorage.js.map +0 -1
  358. package/esm/services/TokenService.js +0 -103
  359. package/esm/services/TokenService.js.map +0 -1
  360. package/esm/session.js +0 -81
  361. package/esm/session.js.map +0 -1
  362. package/esm/tx/AuthTransaction.js +0 -213
  363. package/esm/tx/AuthTransaction.js.map +0 -1
  364. package/esm/tx/TransactionState.js.map +0 -1
  365. package/esm/tx/api.js +0 -87
  366. package/esm/tx/api.js.map +0 -1
  367. package/esm/tx/index.js +0 -18
  368. package/esm/tx/index.js.map +0 -1
  369. package/esm/tx/poll.js +0 -124
  370. package/esm/tx/poll.js.map +0 -1
  371. package/esm/tx/util.js.map +0 -1
  372. package/esm/types/AuthState.js +0 -3
  373. package/esm/types/Cookies.js +0 -3
  374. package/esm/types/EventEmitter.js +0 -3
  375. package/esm/types/EventEmitter.js.map +0 -1
  376. package/esm/types/JWT.js +0 -3
  377. package/esm/types/JWT.js.map +0 -1
  378. package/esm/types/OAuth.js +0 -3
  379. package/esm/types/OAuth.js.map +0 -1
  380. package/esm/types/OktaAuthOptions.js +0 -3
  381. package/esm/types/OktaAuthOptions.js.map +0 -1
  382. package/esm/types/Storage.js +0 -3
  383. package/esm/types/Storage.js.map +0 -1
  384. package/esm/types/Token.js +0 -29
  385. package/esm/types/Token.js.map +0 -1
  386. package/esm/types/TokenManager.js +0 -3
  387. package/esm/types/TokenManager.js.map +0 -1
  388. package/esm/types/Transaction.js +0 -57
  389. package/esm/types/Transaction.js.map +0 -1
  390. package/esm/types/UserClaims.js +0 -3
  391. package/esm/types/UserClaims.js.map +0 -1
  392. package/esm/types/api.js +0 -3
  393. package/esm/types/api.js.map +0 -1
  394. package/esm/types/http.js +0 -3
  395. package/esm/types/http.js.map +0 -1
  396. package/esm/types/index.js +0 -27
  397. package/esm/types/index.js.map +0 -1
  398. package/esm/util/console.js +0 -53
  399. package/esm/util/console.js.map +0 -1
  400. package/esm/util/emailVerify.js +0 -21
  401. package/esm/util/emailVerify.js.map +0 -1
  402. package/esm/util/index.js +0 -18
  403. package/esm/util/index.js.map +0 -1
  404. package/esm/util/misc.js +0 -33
  405. package/esm/util/misc.js.map +0 -1
  406. package/esm/util/object.js +0 -117
  407. package/esm/util/object.js.map +0 -1
  408. package/esm/util/sharedStorage.js +0 -43
  409. package/esm/util/sharedStorage.js.map +0 -1
  410. package/esm/util/types.js +0 -27
  411. package/esm/util/types.js.map +0 -1
  412. package/esm/util/url.js +0 -64
  413. package/esm/util/url.js.map +0 -1
  414. package/lib/idx/flowMonitors/AuthenticationFlowMonitor.d.ts +0 -15
  415. package/lib/idx/flowMonitors/FlowMonitor.d.ts +0 -23
  416. package/lib/idx/flowMonitors/PasswordRecoveryFlowMonitor.d.ts +0 -16
  417. package/lib/idx/flowMonitors/RegistrationFlowMonitor.d.ts +0 -15
@@ -1,75 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- *
12
- */
13
- import { getWellKnown } from '../endpoints/well-known';
14
- import { AuthSdkError } from '../../errors';
15
- import { clone } from '../../util';
16
- import { getDefaultTokenParams } from './defaultTokenParams';
17
- import { DEFAULT_CODE_CHALLENGE_METHOD } from '../../constants';
18
- import pkce from './pkce'; // Prepares params for a call to /authorize or /token
19
-
20
- export function prepareTokenParams(sdk, tokenParams) {
21
- // build params using defaults + options
22
- var defaults = getDefaultTokenParams(sdk);
23
- tokenParams = Object.assign({}, defaults, clone(tokenParams));
24
-
25
- if (tokenParams.pkce === false) {
26
- // Implicit flow or authorization_code without PKCE
27
- return Promise.resolve(tokenParams);
28
- } // PKCE flow
29
-
30
-
31
- if (!sdk.features.isPKCESupported()) {
32
- var errorMessage = 'PKCE requires a modern browser with encryption support running in a secure context.';
33
-
34
- if (!sdk.features.isHTTPS()) {
35
- // eslint-disable-next-line max-len
36
- errorMessage += '\nThe current page is not being served with HTTPS protocol. PKCE requires secure HTTPS protocol.';
37
- }
38
-
39
- if (!sdk.features.hasTextEncoder()) {
40
- // eslint-disable-next-line max-len
41
- errorMessage += '\n"TextEncoder" is not defined. To use PKCE, you may need to include a polyfill/shim for this browser.';
42
- }
43
-
44
- return Promise.reject(new AuthSdkError(errorMessage));
45
- } // set default code challenge method, if none provided
46
-
47
-
48
- if (!tokenParams.codeChallengeMethod) {
49
- tokenParams.codeChallengeMethod = DEFAULT_CODE_CHALLENGE_METHOD;
50
- } // responseType is forced
51
-
52
-
53
- tokenParams.responseType = 'code';
54
- return getWellKnown(sdk, null).then(function (res) {
55
- var methods = res['code_challenge_methods_supported'] || [];
56
-
57
- if (methods.indexOf(tokenParams.codeChallengeMethod) === -1) {
58
- throw new AuthSdkError('Invalid code_challenge_method');
59
- }
60
- }).then(function () {
61
- if (!tokenParams.codeVerifier) {
62
- tokenParams.codeVerifier = pkce.generateVerifier();
63
- }
64
-
65
- return pkce.computeChallenge(tokenParams.codeVerifier);
66
- }).then(function (codeChallenge) {
67
- // Clone/copy the params. Set codeChallenge
68
- var clonedParams = clone(tokenParams) || {};
69
- Object.assign(clonedParams, tokenParams, {
70
- codeChallenge: codeChallenge
71
- });
72
- return clonedParams;
73
- });
74
- }
75
- //# sourceMappingURL=prepareTokenParams.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../lib/oidc/util/prepareTokenParams.ts"],"names":["getWellKnown","AuthSdkError","clone","getDefaultTokenParams","DEFAULT_CODE_CHALLENGE_METHOD","pkce","prepareTokenParams","sdk","tokenParams","defaults","Object","assign","Promise","resolve","features","isPKCESupported","errorMessage","isHTTPS","hasTextEncoder","reject","codeChallengeMethod","responseType","then","res","methods","indexOf","codeVerifier","generateVerifier","computeChallenge","codeChallenge","clonedParams"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAT,QAA6B,yBAA7B;AACA,SAASC,YAAT,QAA6B,cAA7B;AAEA,SAASC,KAAT,QAAsB,YAAtB;AACA,SAASC,qBAAT,QAAsC,sBAAtC;AACA,SAASC,6BAAT,QAA8C,iBAA9C;AACA,OAAOC,IAAP,MAAiB,QAAjB,C,CAEA;;AACA,OAAO,SAASC,kBAAT,CAA4BC,GAA5B,EAA2CC,WAA3C,EAA4F;AACjG;AACA,MAAMC,QAAQ,GAAGN,qBAAqB,CAACI,GAAD,CAAtC;AACAC,EAAAA,WAAW,GAAGE,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBF,QAAlB,EAA4BP,KAAK,CAACM,WAAD,CAAjC,CAAd;;AAEA,MAAIA,WAAW,CAACH,IAAZ,KAAqB,KAAzB,EAAgC;AAC9B;AACA,WAAOO,OAAO,CAACC,OAAR,CAAgBL,WAAhB,CAAP;AACD,GARgG,CAUjG;;;AACA,MAAI,CAACD,GAAG,CAACO,QAAJ,CAAaC,eAAb,EAAL,EAAqC;AACnC,QAAIC,YAAY,GAAG,qFAAnB;;AACA,QAAI,CAACT,GAAG,CAACO,QAAJ,CAAaG,OAAb,EAAL,EAA6B;AAC3B;AACAD,MAAAA,YAAY,IAAI,kGAAhB;AACD;;AACD,QAAI,CAACT,GAAG,CAACO,QAAJ,CAAaI,cAAb,EAAL,EAAoC;AAClC;AACAF,MAAAA,YAAY,IAAI,wGAAhB;AACD;;AACD,WAAOJ,OAAO,CAACO,MAAR,CAAe,IAAIlB,YAAJ,CAAiBe,YAAjB,CAAf,CAAP;AACD,GAtBgG,CAwBjG;;;AACA,MAAI,CAACR,WAAW,CAACY,mBAAjB,EAAsC;AACpCZ,IAAAA,WAAW,CAACY,mBAAZ,GAAkChB,6BAAlC;AACD,GA3BgG,CA6BjG;;;AACAI,EAAAA,WAAW,CAACa,YAAZ,GAA2B,MAA3B;AAEA,SAAOrB,YAAY,CAACO,GAAD,EAAM,IAAN,CAAZ,CACJe,IADI,CACC,UAAUC,GAAV,EAAe;AACnB,QAAIC,OAAO,GAAGD,GAAG,CAAC,kCAAD,CAAH,IAA2C,EAAzD;;AACA,QAAIC,OAAO,CAACC,OAAR,CAAgBjB,WAAW,CAACY,mBAA5B,MAAqD,CAAC,CAA1D,EAA6D;AAC3D,YAAM,IAAInB,YAAJ,CAAiB,+BAAjB,CAAN;AACD;AACF,GANI,EAOJqB,IAPI,CAOC,YAAY;AAChB,QAAI,CAACd,WAAW,CAACkB,YAAjB,EAA+B;AAC7BlB,MAAAA,WAAW,CAACkB,YAAZ,GAA2BrB,IAAI,CAACsB,gBAAL,EAA3B;AACD;;AACD,WAAOtB,IAAI,CAACuB,gBAAL,CAAsBpB,WAAW,CAACkB,YAAlC,CAAP;AACD,GAZI,EAaJJ,IAbI,CAaC,UAAUO,aAAV,EAAyB;AAC7B;AACA,QAAIC,YAAY,GAAG5B,KAAK,CAACM,WAAD,CAAL,IAAsB,EAAzC;AACAE,IAAAA,MAAM,CAACC,MAAP,CAAcmB,YAAd,EAA4BtB,WAA5B,EAAyC;AACvCqB,MAAAA,aAAa,EAAEA;AADwB,KAAzC;AAGA,WAAOC,YAAP;AACD,GApBI,CAAP;AAqBD","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { getWellKnown } from '../endpoints/well-known';\nimport { AuthSdkError } from '../../errors';\nimport { OktaAuth, TokenParams } from '../../types';\nimport { clone } from '../../util';\nimport { getDefaultTokenParams } from './defaultTokenParams';\nimport { DEFAULT_CODE_CHALLENGE_METHOD } from '../../constants';\nimport pkce from './pkce';\n\n// Prepares params for a call to /authorize or /token\nexport function prepareTokenParams(sdk: OktaAuth, tokenParams?: TokenParams): Promise<TokenParams> {\n // build params using defaults + options\n const defaults = getDefaultTokenParams(sdk);\n tokenParams = Object.assign({}, defaults, clone(tokenParams));\n\n if (tokenParams.pkce === false) {\n // Implicit flow or authorization_code without PKCE\n return Promise.resolve(tokenParams);\n }\n\n // PKCE flow\n if (!sdk.features.isPKCESupported()) {\n var errorMessage = 'PKCE requires a modern browser with encryption support running in a secure context.';\n if (!sdk.features.isHTTPS()) {\n // eslint-disable-next-line max-len\n errorMessage += '\\nThe current page is not being served with HTTPS protocol. PKCE requires secure HTTPS protocol.';\n }\n if (!sdk.features.hasTextEncoder()) {\n // eslint-disable-next-line max-len\n errorMessage += '\\n\"TextEncoder\" is not defined. To use PKCE, you may need to include a polyfill/shim for this browser.';\n }\n return Promise.reject(new AuthSdkError(errorMessage));\n }\n\n // set default code challenge method, if none provided\n if (!tokenParams.codeChallengeMethod) {\n tokenParams.codeChallengeMethod = DEFAULT_CODE_CHALLENGE_METHOD;\n }\n\n // responseType is forced\n tokenParams.responseType = 'code';\n\n return getWellKnown(sdk, null)\n .then(function (res) {\n var methods = res['code_challenge_methods_supported'] || [];\n if (methods.indexOf(tokenParams.codeChallengeMethod) === -1) {\n throw new AuthSdkError('Invalid code_challenge_method');\n }\n })\n .then(function () {\n if (!tokenParams.codeVerifier) {\n tokenParams.codeVerifier = pkce.generateVerifier();\n }\n return pkce.computeChallenge(tokenParams.codeVerifier);\n })\n .then(function (codeChallenge) {\n // Clone/copy the params. Set codeChallenge\n var clonedParams = clone(tokenParams) || {};\n Object.assign(clonedParams, tokenParams, {\n codeChallenge: codeChallenge,\n });\n return clonedParams;\n });\n}"],"file":"prepareTokenParams.js"}
@@ -1,24 +0,0 @@
1
- import { isAuthApiError } from '../../errors';
2
- export function isSameRefreshToken(a, b) {
3
- return a.refreshToken === b.refreshToken;
4
- }
5
- export function isRefreshTokenError(err) {
6
- if (!isAuthApiError(err)) {
7
- return false;
8
- }
9
-
10
- if (!err.xhr || !err.xhr.responseJSON) {
11
- return false;
12
- }
13
-
14
- var {
15
- responseJSON
16
- } = err.xhr;
17
-
18
- if (responseJSON.error === 'invalid_grant') {
19
- return true;
20
- }
21
-
22
- return false;
23
- }
24
- //# sourceMappingURL=refreshToken.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../lib/oidc/util/refreshToken.ts"],"names":["isAuthApiError","isSameRefreshToken","a","b","refreshToken","isRefreshTokenError","err","xhr","responseJSON","error"],"mappings":"AACA,SAASA,cAAT,QAA+B,cAA/B;AAEA,OAAO,SAASC,kBAAT,CAA4BC,CAA5B,EAA6CC,CAA7C,EAA8D;AACnE,SAAQD,CAAC,CAACE,YAAF,KAAmBD,CAAC,CAACC,YAA7B;AACD;AAED,OAAO,SAASC,mBAAT,CAA6BC,GAA7B,EAAyC;AAC9C,MAAI,CAACN,cAAc,CAACM,GAAD,CAAnB,EAA0B;AACxB,WAAO,KAAP;AACD;;AAED,MAAI,CAACA,GAAG,CAACC,GAAL,IAAY,CAACD,GAAG,CAACC,GAAJ,CAAQC,YAAzB,EAAuC;AACrC,WAAO,KAAP;AACD;;AAED,MAAM;AAAEA,IAAAA;AAAF,MAAmBF,GAAG,CAACC,GAA7B;;AACA,MAAIC,YAAY,CAACC,KAAb,KAAuB,eAA3B,EAA4C;AAC1C,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD","sourcesContent":["import { RefreshToken } from '../../types';\nimport { isAuthApiError } from '../../errors';\n\nexport function isSameRefreshToken(a: RefreshToken, b: RefreshToken) {\n return (a.refreshToken === b.refreshToken);\n}\n\nexport function isRefreshTokenError(err: Error) {\n if (!isAuthApiError(err)) {\n return false;\n }\n\n if (!err.xhr || !err.xhr.responseJSON) {\n return false;\n }\n\n const { responseJSON } = err.xhr;\n if (responseJSON.error === 'invalid_grant') {\n return true;\n }\n\n return false;\n}"],"file":"refreshToken.js"}
@@ -1,54 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- *
12
- */
13
-
14
- /* eslint-disable complexity, max-statements */
15
- export function urlParamsToObject(hashOrSearch) {
16
- // Predefine regexs for parsing hash
17
- var plus2space = /\+/g;
18
- var paramSplit = /([^&=]+)=?([^&]*)/g;
19
- var fragment = hashOrSearch || ''; // Some hash based routers will automatically add a / character after the hash
20
-
21
- if (fragment.charAt(0) === '#' && fragment.charAt(1) === '/') {
22
- fragment = fragment.substring(2);
23
- } // Remove the leading # or ?
24
-
25
-
26
- if (fragment.charAt(0) === '#' || fragment.charAt(0) === '?') {
27
- fragment = fragment.substring(1);
28
- }
29
-
30
- var obj = {}; // Loop until we have no more params
31
-
32
- var param;
33
-
34
- while (true) {
35
- // eslint-disable-line no-constant-condition
36
- param = paramSplit.exec(fragment);
37
-
38
- if (!param) {
39
- break;
40
- }
41
-
42
- var key = param[1];
43
- var value = param[2]; // id_token should remain base64url encoded
44
-
45
- if (key === 'id_token' || key === 'access_token' || key === 'code') {
46
- obj[key] = value;
47
- } else {
48
- obj[key] = decodeURIComponent(value.replace(plus2space, ' '));
49
- }
50
- }
51
-
52
- return obj;
53
- }
54
- //# sourceMappingURL=urlParams.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../lib/oidc/util/urlParams.ts"],"names":["urlParamsToObject","hashOrSearch","plus2space","paramSplit","fragment","charAt","substring","obj","param","exec","key","value","decodeURIComponent","replace"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAEA,OAAO,SAASA,iBAAT,CAA2BC,YAA3B,EAAiD;AACtD;AACA,MAAIC,UAAU,GAAG,KAAjB;AACA,MAAIC,UAAU,GAAG,oBAAjB;AACA,MAAIC,QAAQ,GAAGH,YAAY,IAAI,EAA/B,CAJsD,CAMtD;;AACA,MAAIG,QAAQ,CAACC,MAAT,CAAgB,CAAhB,MAAuB,GAAvB,IAA8BD,QAAQ,CAACC,MAAT,CAAgB,CAAhB,MAAuB,GAAzD,EAA8D;AAC5DD,IAAAA,QAAQ,GAAGA,QAAQ,CAACE,SAAT,CAAmB,CAAnB,CAAX;AACD,GATqD,CAWtD;;;AACA,MAAIF,QAAQ,CAACC,MAAT,CAAgB,CAAhB,MAAuB,GAAvB,IAA8BD,QAAQ,CAACC,MAAT,CAAgB,CAAhB,MAAuB,GAAzD,EAA8D;AAC5DD,IAAAA,QAAQ,GAAGA,QAAQ,CAACE,SAAT,CAAmB,CAAnB,CAAX;AACD;;AAGD,MAAIC,GAAG,GAAG,EAAV,CAjBsD,CAmBtD;;AACA,MAAIC,KAAJ;;AACA,SAAO,IAAP,EAAa;AAAE;AACbA,IAAAA,KAAK,GAAGL,UAAU,CAACM,IAAX,CAAgBL,QAAhB,CAAR;;AACA,QAAI,CAACI,KAAL,EAAY;AAAE;AAAQ;;AAEtB,QAAIE,GAAG,GAAGF,KAAK,CAAC,CAAD,CAAf;AACA,QAAIG,KAAK,GAAGH,KAAK,CAAC,CAAD,CAAjB,CALW,CAOX;;AACA,QAAIE,GAAG,KAAK,UAAR,IAAsBA,GAAG,KAAK,cAA9B,IAAgDA,GAAG,KAAK,MAA5D,EAAoE;AAClEH,MAAAA,GAAG,CAACG,GAAD,CAAH,GAAWC,KAAX;AACD,KAFD,MAEO;AACLJ,MAAAA,GAAG,CAACG,GAAD,CAAH,GAAWE,kBAAkB,CAACD,KAAK,CAACE,OAAN,CAAcX,UAAd,EAA0B,GAA1B,CAAD,CAA7B;AACD;AACF;;AACD,SAAOK,GAAP;AACD","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n/* eslint-disable complexity, max-statements */\n\nexport function urlParamsToObject(hashOrSearch: string) {\n // Predefine regexs for parsing hash\n var plus2space = /\\+/g;\n var paramSplit = /([^&=]+)=?([^&]*)/g;\n var fragment = hashOrSearch || '';\n\n // Some hash based routers will automatically add a / character after the hash\n if (fragment.charAt(0) === '#' && fragment.charAt(1) === '/') {\n fragment = fragment.substring(2);\n }\n\n // Remove the leading # or ?\n if (fragment.charAt(0) === '#' || fragment.charAt(0) === '?') {\n fragment = fragment.substring(1);\n }\n\n\n var obj = {};\n\n // Loop until we have no more params\n var param;\n while (true) { // eslint-disable-line no-constant-condition\n param = paramSplit.exec(fragment);\n if (!param) { break; }\n\n var key = param[1];\n var value = param[2];\n\n // id_token should remain base64url encoded\n if (key === 'id_token' || key === 'access_token' || key === 'code') {\n obj[key] = value;\n } else {\n obj[key] = decodeURIComponent(value.replace(plus2space, ' '));\n }\n }\n return obj;\n}\n"],"file":"urlParams.js"}
@@ -1,53 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- *
12
- */
13
-
14
- /* eslint-disable complexity, max-statements */
15
- import AuthSdkError from '../../errors/AuthSdkError';
16
- export function validateClaims(sdk, claims, validationParams) {
17
- var aud = validationParams.clientId;
18
- var iss = validationParams.issuer;
19
- var nonce = validationParams.nonce;
20
-
21
- if (!claims || !iss || !aud) {
22
- throw new AuthSdkError('The jwt, iss, and aud arguments are all required');
23
- }
24
-
25
- if (nonce && claims.nonce !== nonce) {
26
- throw new AuthSdkError('OAuth flow response nonce doesn\'t match request nonce');
27
- }
28
-
29
- var now = Math.floor(Date.now() / 1000);
30
-
31
- if (claims.iss !== iss) {
32
- throw new AuthSdkError('The issuer [' + claims.iss + '] ' + 'does not match [' + iss + ']');
33
- }
34
-
35
- if (claims.aud !== aud) {
36
- throw new AuthSdkError('The audience [' + claims.aud + '] ' + 'does not match [' + aud + ']');
37
- }
38
-
39
- if (claims.iat > claims.exp) {
40
- throw new AuthSdkError('The JWT expired before it was issued');
41
- }
42
-
43
- if (!sdk.options.ignoreLifetime) {
44
- if (now - sdk.options.maxClockSkew > claims.exp) {
45
- throw new AuthSdkError('The JWT expired and is no longer valid');
46
- }
47
-
48
- if (claims.iat > now + sdk.options.maxClockSkew) {
49
- throw new AuthSdkError('The JWT was issued in the future');
50
- }
51
- }
52
- }
53
- //# sourceMappingURL=validateClaims.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../lib/oidc/util/validateClaims.ts"],"names":["AuthSdkError","validateClaims","sdk","claims","validationParams","aud","clientId","iss","issuer","nonce","now","Math","floor","Date","iat","exp","options","ignoreLifetime","maxClockSkew"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAEA,OAAOA,YAAP,MAAyB,2BAAzB;AAGA,OAAO,SAASC,cAAT,CAAwBC,GAAxB,EAAuCC,MAAvC,EAA2DC,gBAA3D,EAAgG;AACrG,MAAIC,GAAG,GAAGD,gBAAgB,CAACE,QAA3B;AACA,MAAIC,GAAG,GAAGH,gBAAgB,CAACI,MAA3B;AACA,MAAIC,KAAK,GAAGL,gBAAgB,CAACK,KAA7B;;AAEA,MAAI,CAACN,MAAD,IAAW,CAACI,GAAZ,IAAmB,CAACF,GAAxB,EAA6B;AAC3B,UAAM,IAAIL,YAAJ,CAAiB,kDAAjB,CAAN;AACD;;AAED,MAAIS,KAAK,IAAIN,MAAM,CAACM,KAAP,KAAiBA,KAA9B,EAAqC;AACnC,UAAM,IAAIT,YAAJ,CAAiB,wDAAjB,CAAN;AACD;;AAED,MAAIU,GAAG,GAAGC,IAAI,CAACC,KAAL,CAAWC,IAAI,CAACH,GAAL,KAAW,IAAtB,CAAV;;AAEA,MAAIP,MAAM,CAACI,GAAP,KAAeA,GAAnB,EAAwB;AACtB,UAAM,IAAIP,YAAJ,CAAiB,iBAAiBG,MAAM,CAACI,GAAxB,GAA8B,IAA9B,GACrB,kBADqB,GACAA,GADA,GACM,GADvB,CAAN;AAED;;AAED,MAAIJ,MAAM,CAACE,GAAP,KAAeA,GAAnB,EAAwB;AACtB,UAAM,IAAIL,YAAJ,CAAiB,mBAAmBG,MAAM,CAACE,GAA1B,GAAgC,IAAhC,GACrB,kBADqB,GACAA,GADA,GACM,GADvB,CAAN;AAED;;AAED,MAAIF,MAAM,CAACW,GAAP,GAAaX,MAAM,CAACY,GAAxB,EAA6B;AAC3B,UAAM,IAAIf,YAAJ,CAAiB,sCAAjB,CAAN;AACD;;AAED,MAAI,CAACE,GAAG,CAACc,OAAJ,CAAYC,cAAjB,EAAiC;AAC/B,QAAKP,GAAG,GAAGR,GAAG,CAACc,OAAJ,CAAYE,YAAnB,GAAmCf,MAAM,CAACY,GAA9C,EAAmD;AACjD,YAAM,IAAIf,YAAJ,CAAiB,wCAAjB,CAAN;AACD;;AAED,QAAIG,MAAM,CAACW,GAAP,GAAcJ,GAAG,GAAGR,GAAG,CAACc,OAAJ,CAAYE,YAApC,EAAmD;AACjD,YAAM,IAAIlB,YAAJ,CAAiB,kCAAjB,CAAN;AACD;AACF;AACF","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n/* eslint-disable complexity, max-statements */\n\nimport AuthSdkError from '../../errors/AuthSdkError';\nimport { OktaAuth, TokenVerifyParams, UserClaims } from '../../types';\n\nexport function validateClaims(sdk: OktaAuth, claims: UserClaims, validationParams: TokenVerifyParams) {\n var aud = validationParams.clientId;\n var iss = validationParams.issuer;\n var nonce = validationParams.nonce;\n\n if (!claims || !iss || !aud) {\n throw new AuthSdkError('The jwt, iss, and aud arguments are all required');\n }\n\n if (nonce && claims.nonce !== nonce) {\n throw new AuthSdkError('OAuth flow response nonce doesn\\'t match request nonce');\n }\n\n var now = Math.floor(Date.now()/1000);\n\n if (claims.iss !== iss) {\n throw new AuthSdkError('The issuer [' + claims.iss + '] ' +\n 'does not match [' + iss + ']');\n }\n\n if (claims.aud !== aud) {\n throw new AuthSdkError('The audience [' + claims.aud + '] ' +\n 'does not match [' + aud + ']');\n }\n\n if (claims.iat > claims.exp) {\n throw new AuthSdkError('The JWT expired before it was issued');\n }\n\n if (!sdk.options.ignoreLifetime) {\n if ((now - sdk.options.maxClockSkew) > claims.exp) {\n throw new AuthSdkError('The JWT expired and is no longer valid');\n }\n\n if (claims.iat > (now + sdk.options.maxClockSkew)) {\n throw new AuthSdkError('The JWT was issued in the future');\n }\n }\n}\n"],"file":"validateClaims.js"}
@@ -1,21 +0,0 @@
1
- /* eslint-disable complexity */
2
- import { AuthSdkError } from '../../errors';
3
- import { isAccessToken, isIDToken, isRefreshToken } from '../../types';
4
- export function validateToken(token, type) {
5
- if (!isIDToken(token) && !isAccessToken(token) && !isRefreshToken(token)) {
6
- throw new AuthSdkError('Token must be an Object with scopes, expiresAt, and one of: an idToken, accessToken, or refreshToken property');
7
- }
8
-
9
- if (type === 'accessToken' && !isAccessToken(token)) {
10
- throw new AuthSdkError('invalid accessToken');
11
- }
12
-
13
- if (type === 'idToken' && !isIDToken(token)) {
14
- throw new AuthSdkError('invalid idToken');
15
- }
16
-
17
- if (type === 'refreshToken' && !isRefreshToken(token)) {
18
- throw new AuthSdkError('invalid refreshToken');
19
- }
20
- }
21
- //# sourceMappingURL=validateToken.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../lib/oidc/util/validateToken.ts"],"names":["AuthSdkError","isAccessToken","isIDToken","isRefreshToken","validateToken","token","type"],"mappings":"AAAA;AAEA,SAASA,YAAT,QAA6B,cAA7B;AACA,SAASC,aAAT,EAAwBC,SAAxB,EAAmCC,cAAnC,QAA2E,aAA3E;AAEA,OAAO,SAASC,aAAT,CAAuBC,KAAvB,EAAqCC,IAArC,EAAuD;AAC5D,MAAI,CAACJ,SAAS,CAACG,KAAD,CAAV,IAAqB,CAACJ,aAAa,CAACI,KAAD,CAAnC,IAA8C,CAACF,cAAc,CAACE,KAAD,CAAjE,EAA0E;AACxE,UAAM,IAAIL,YAAJ,CACJ,+GADI,CAAN;AAGD;;AAED,MAAIM,IAAI,KAAK,aAAT,IAA0B,CAACL,aAAa,CAACI,KAAD,CAA5C,EAAqD;AACnD,UAAM,IAAIL,YAAJ,CAAiB,qBAAjB,CAAN;AACD;;AACD,MAAIM,IAAI,KAAK,SAAT,IAAsB,CAACJ,SAAS,CAACG,KAAD,CAApC,EAA6C;AAC3C,UAAM,IAAIL,YAAJ,CAAiB,iBAAjB,CAAN;AACD;;AAED,MAAIM,IAAI,KAAK,cAAT,IAA2B,CAACH,cAAc,CAACE,KAAD,CAA9C,EAAuD;AACrD,UAAM,IAAIL,YAAJ,CAAiB,sBAAjB,CAAN;AACD;AACF","sourcesContent":["/* eslint-disable complexity */\n\nimport { AuthSdkError } from '../../errors';\nimport { isAccessToken, isIDToken, isRefreshToken, Token, TokenType } from '../../types';\n\nexport function validateToken(token: Token, type?: TokenType) {\n if (!isIDToken(token) && !isAccessToken(token) && !isRefreshToken(token)) {\n throw new AuthSdkError(\n 'Token must be an Object with scopes, expiresAt, and one of: an idToken, accessToken, or refreshToken property'\n );\n }\n \n if (type === 'accessToken' && !isAccessToken(token)) {\n throw new AuthSdkError('invalid accessToken');\n } \n if (type === 'idToken' && !isIDToken(token)) {\n throw new AuthSdkError('invalid idToken');\n }\n\n if (type === 'refreshToken' && !isRefreshToken(token)) {\n throw new AuthSdkError('invalid refreshToken');\n }\n}"],"file":"validateToken.js"}
@@ -1,78 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
-
3
- /* eslint-disable max-len */
4
-
5
- /* eslint-disable complexity */
6
-
7
- /*!
8
- * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
9
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
10
- *
11
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
12
- * Unless required by applicable law or agreed to in writing, software
13
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- *
16
- * See the License for the specific language governing permissions and limitations under the License.
17
- *
18
- */
19
- import { getWellKnown, getKey } from './endpoints/well-known';
20
- import { validateClaims } from './util';
21
- import { AuthSdkError } from '../errors';
22
- import { decodeToken } from './decodeToken';
23
- import * as sdkCrypto from '../crypto'; // Verify the id token
24
-
25
- export function verifyToken(_x, _x2, _x3) {
26
- return _verifyToken.apply(this, arguments);
27
- }
28
-
29
- function _verifyToken() {
30
- _verifyToken = _asyncToGenerator(function* (sdk, token, validationParams) {
31
- if (!token || !token.idToken) {
32
- throw new AuthSdkError('Only idTokens may be verified');
33
- } // Decode the Jwt object (may throw)
34
-
35
-
36
- var jwt = decodeToken(token.idToken); // The configured issuer may point to a frontend proxy.
37
- // Get the "real" issuer from .well-known/openid-configuration
38
-
39
- var configuredIssuer = (validationParams === null || validationParams === void 0 ? void 0 : validationParams.issuer) || sdk.options.issuer;
40
- var {
41
- issuer
42
- } = yield getWellKnown(sdk, configuredIssuer);
43
- var validationOptions = Object.assign({
44
- // base options, can be overridden by params
45
- clientId: sdk.options.clientId,
46
- ignoreSignature: sdk.options.ignoreSignature
47
- }, validationParams, {
48
- // final options, cannot be overridden
49
- issuer
50
- }); // Standard claim validation (may throw)
51
-
52
- validateClaims(sdk, jwt.payload, validationOptions); // If the browser doesn't support native crypto or we choose not
53
- // to verify the signature, bail early
54
-
55
- if (validationOptions.ignoreSignature == true || !sdk.features.isTokenVerifySupported()) {
56
- return token;
57
- }
58
-
59
- var key = yield getKey(sdk, token.issuer, jwt.header.kid);
60
- var valid = yield sdkCrypto.verifyToken(token.idToken, key);
61
-
62
- if (!valid) {
63
- throw new AuthSdkError('The token signature is not valid');
64
- }
65
-
66
- if (validationParams && validationParams.accessToken && token.claims.at_hash) {
67
- var hash = yield sdkCrypto.getOidcHash(validationParams.accessToken);
68
-
69
- if (hash !== token.claims.at_hash) {
70
- throw new AuthSdkError('Token hash verification failed');
71
- }
72
- }
73
-
74
- return token;
75
- });
76
- return _verifyToken.apply(this, arguments);
77
- }
78
- //# sourceMappingURL=verifyToken.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../lib/oidc/verifyToken.ts"],"names":["getWellKnown","getKey","validateClaims","AuthSdkError","decodeToken","sdkCrypto","verifyToken","sdk","token","validationParams","idToken","jwt","configuredIssuer","issuer","options","validationOptions","Object","assign","clientId","ignoreSignature","payload","features","isTokenVerifySupported","key","header","kid","valid","accessToken","claims","at_hash","hash","getOidcHash"],"mappings":";;AAAA;;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAT,EAAuBC,MAAvB,QAAqC,wBAArC;AACA,SAASC,cAAT,QAA+B,QAA/B;AACA,SAASC,YAAT,QAA6B,WAA7B;AAEA,SAASC,WAAT,QAA4B,eAA5B;AACA,OAAO,KAAKC,SAAZ,MAA2B,WAA3B,C,CAEA;;AACA,gBAAsBC,WAAtB;AAAA;AAAA;;;mCAAO,WAA2BC,GAA3B,EAA0CC,KAA1C,EAA0DC,gBAA1D,EAAiH;AACtH,QAAI,CAACD,KAAD,IAAU,CAACA,KAAK,CAACE,OAArB,EAA8B;AAC5B,YAAM,IAAIP,YAAJ,CAAiB,+BAAjB,CAAN;AACD,KAHqH,CAKtH;;;AACA,QAAIQ,GAAG,GAAGP,WAAW,CAACI,KAAK,CAACE,OAAP,CAArB,CANsH,CAQtH;AACA;;AACA,QAAME,gBAAgB,GAAG,CAAAH,gBAAgB,SAAhB,IAAAA,gBAAgB,WAAhB,YAAAA,gBAAgB,CAAEI,MAAlB,KAA4BN,GAAG,CAACO,OAAJ,CAAYD,MAAjE;AACA,QAAM;AAAEA,MAAAA;AAAF,cAAmBb,YAAY,CAACO,GAAD,EAAMK,gBAAN,CAArC;AAEA,QAAIG,iBAAoC,GAAGC,MAAM,CAACC,MAAP,CAAc;AACvD;AACAC,MAAAA,QAAQ,EAAEX,GAAG,CAACO,OAAJ,CAAYI,QAFiC;AAGvDC,MAAAA,eAAe,EAAEZ,GAAG,CAACO,OAAJ,CAAYK;AAH0B,KAAd,EAIxCV,gBAJwC,EAItB;AACnB;AACAI,MAAAA;AAFmB,KAJsB,CAA3C,CAbsH,CAsBtH;;AACAX,IAAAA,cAAc,CAACK,GAAD,EAAMI,GAAG,CAACS,OAAV,EAAmBL,iBAAnB,CAAd,CAvBsH,CAyBtH;AACA;;AACA,QAAIA,iBAAiB,CAACI,eAAlB,IAAqC,IAArC,IAA6C,CAACZ,GAAG,CAACc,QAAJ,CAAaC,sBAAb,EAAlD,EAAyF;AACvF,aAAOd,KAAP;AACD;;AAED,QAAMe,GAAG,SAAStB,MAAM,CAACM,GAAD,EAAMC,KAAK,CAACK,MAAZ,EAAoBF,GAAG,CAACa,MAAJ,CAAWC,GAA/B,CAAxB;AACA,QAAMC,KAAK,SAASrB,SAAS,CAACC,WAAV,CAAsBE,KAAK,CAACE,OAA5B,EAAqCa,GAArC,CAApB;;AACA,QAAI,CAACG,KAAL,EAAY;AACV,YAAM,IAAIvB,YAAJ,CAAiB,kCAAjB,CAAN;AACD;;AACD,QAAIM,gBAAgB,IAAIA,gBAAgB,CAACkB,WAArC,IAAoDnB,KAAK,CAACoB,MAAN,CAAaC,OAArE,EAA8E;AAC5E,UAAMC,IAAI,SAASzB,SAAS,CAAC0B,WAAV,CAAsBtB,gBAAgB,CAACkB,WAAvC,CAAnB;;AACA,UAAIG,IAAI,KAAKtB,KAAK,CAACoB,MAAN,CAAaC,OAA1B,EAAmC;AACjC,cAAM,IAAI1B,YAAJ,CAAiB,gCAAjB,CAAN;AACD;AACF;;AACD,WAAOK,KAAP;AACD,G","sourcesContent":["/* eslint-disable max-len */\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { getWellKnown, getKey } from './endpoints/well-known';\nimport { validateClaims } from './util';\nimport { AuthSdkError } from '../errors';\nimport { IDToken, OktaAuth, TokenVerifyParams } from '../types';\nimport { decodeToken } from './decodeToken';\nimport * as sdkCrypto from '../crypto';\n\n// Verify the id token\nexport async function verifyToken(sdk: OktaAuth, token: IDToken, validationParams: TokenVerifyParams): Promise<IDToken> {\n if (!token || !token.idToken) {\n throw new AuthSdkError('Only idTokens may be verified');\n }\n\n // Decode the Jwt object (may throw)\n var jwt = decodeToken(token.idToken);\n\n // The configured issuer may point to a frontend proxy.\n // Get the \"real\" issuer from .well-known/openid-configuration\n const configuredIssuer = validationParams?.issuer || sdk.options.issuer;\n const { issuer } = await getWellKnown(sdk, configuredIssuer);\n\n var validationOptions: TokenVerifyParams = Object.assign({\n // base options, can be overridden by params\n clientId: sdk.options.clientId,\n ignoreSignature: sdk.options.ignoreSignature\n }, validationParams, {\n // final options, cannot be overridden\n issuer\n });\n\n // Standard claim validation (may throw)\n validateClaims(sdk, jwt.payload, validationOptions);\n\n // If the browser doesn't support native crypto or we choose not\n // to verify the signature, bail early\n if (validationOptions.ignoreSignature == true || !sdk.features.isTokenVerifySupported()) {\n return token;\n }\n\n const key = await getKey(sdk, token.issuer, jwt.header.kid);\n const valid = await sdkCrypto.verifyToken(token.idToken, key);\n if (!valid) {\n throw new AuthSdkError('The token signature is not valid');\n }\n if (validationParams && validationParams.accessToken && token.claims.at_hash) {\n const hash = await sdkCrypto.getOidcHash(validationParams.accessToken);\n if (hash !== token.claims.at_hash) {\n throw new AuthSdkError('Token hash verification failed');\n }\n }\n return token;\n}\n"],"file":"verifyToken.js"}
package/esm/options.js DELETED
@@ -1,144 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- */
12
-
13
- /* eslint-disable complexity */
14
- import { removeTrailingSlash, warn, removeNils } from './util';
15
- import { assertValidConfig } from './builderUtil';
16
- import fetchRequest from './fetch/fetchRequest';
17
- import browserStorage from './browser/browserStorage';
18
- import serverStorage from './server/serverStorage';
19
- import { isBrowser, isHTTPS } from './features';
20
- var BROWSER_STORAGE = {
21
- token: {
22
- storageTypes: ['localStorage', 'sessionStorage', 'cookie'],
23
- useMultipleCookies: true
24
- },
25
- cache: {
26
- storageTypes: ['localStorage', 'sessionStorage', 'cookie']
27
- },
28
- transaction: {
29
- storageTypes: ['sessionStorage', 'localStorage', 'cookie']
30
- },
31
- 'shared-transaction': {
32
- storageTypes: ['localStorage']
33
- },
34
- 'original-uri': {
35
- storageTypes: ['localStorage']
36
- }
37
- };
38
- var SERVER_STORAGE = {
39
- token: {
40
- storageTypes: ['memory']
41
- },
42
- cache: {
43
- storageTypes: ['memory']
44
- },
45
- transaction: {
46
- storageTypes: ['memory']
47
- }
48
- };
49
-
50
- function getCookieSettings() {
51
- var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52
- var isHTTPS = arguments.length > 1 ? arguments[1] : undefined;
53
- // Secure cookies will be automatically used on a HTTPS connection
54
- // Non-secure cookies will be automatically used on a HTTP connection
55
- // secure option can override the automatic behavior
56
- var cookieSettings = args.cookies || {};
57
-
58
- if (typeof cookieSettings.secure === 'undefined') {
59
- cookieSettings.secure = isHTTPS;
60
- }
61
-
62
- if (typeof cookieSettings.sameSite === 'undefined') {
63
- cookieSettings.sameSite = cookieSettings.secure ? 'none' : 'lax';
64
- } // If secure=true, but the connection is not HTTPS, set secure=false.
65
-
66
-
67
- if (cookieSettings.secure && !isHTTPS) {
68
- // eslint-disable-next-line no-console
69
- warn('The current page is not being served with the HTTPS protocol.\n' + 'For security reasons, we strongly recommend using HTTPS.\n' + 'If you cannot use HTTPS, set "cookies.secure" option to false.');
70
- cookieSettings.secure = false;
71
- } // Chrome >= 80 will block cookies with SameSite=None unless they are also Secure
72
- // If sameSite=none, but the connection is not HTTPS, set sameSite=lax.
73
-
74
-
75
- if (cookieSettings.sameSite === 'none' && !cookieSettings.secure) {
76
- cookieSettings.sameSite = 'lax';
77
- }
78
-
79
- return cookieSettings;
80
- }
81
-
82
- export function getDefaultOptions() {
83
- var storageUtil = isBrowser() ? browserStorage : serverStorage;
84
- var storageManager = isBrowser() ? BROWSER_STORAGE : SERVER_STORAGE;
85
- var enableSharedStorage = isBrowser() ? true : false; // localStorage for multi-tab flows (browser only)
86
-
87
- return {
88
- devMode: false,
89
- httpRequestClient: fetchRequest,
90
- storageUtil,
91
- storageManager,
92
- transactionManager: {
93
- enableSharedStorage
94
- }
95
- };
96
- }
97
-
98
- function mergeOptions(options, args) {
99
- return Object.assign({}, options, removeNils(args), {
100
- storageManager: Object.assign({}, options.storageManager, args.storageManager),
101
- transactionManager: Object.assign({}, options.transactionManager, args.transactionManager)
102
- });
103
- }
104
-
105
- export function buildOptions() {
106
- var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
107
- assertValidConfig(args);
108
- args = mergeOptions(getDefaultOptions(), args);
109
- return removeNils({
110
- // OIDC configuration
111
- issuer: removeTrailingSlash(args.issuer),
112
- tokenUrl: removeTrailingSlash(args.tokenUrl),
113
- authorizeUrl: removeTrailingSlash(args.authorizeUrl),
114
- userinfoUrl: removeTrailingSlash(args.userinfoUrl),
115
- revokeUrl: removeTrailingSlash(args.revokeUrl),
116
- logoutUrl: removeTrailingSlash(args.logoutUrl),
117
- clientId: args.clientId,
118
- redirectUri: args.redirectUri,
119
- state: args.state,
120
- scopes: args.scopes,
121
- postLogoutRedirectUri: args.postLogoutRedirectUri,
122
- responseMode: args.responseMode,
123
- responseType: args.responseType,
124
- pkce: args.pkce === false ? false : true,
125
- // PKCE defaults to true
126
- useInteractionCodeFlow: args.useInteractionCodeFlow,
127
- // Internal options
128
- httpRequestClient: args.httpRequestClient,
129
- transformErrorXHR: args.transformErrorXHR,
130
- transformAuthState: args.transformAuthState,
131
- restoreOriginalUri: args.restoreOriginalUri,
132
- storageUtil: args.storageUtil,
133
- headers: args.headers,
134
- devMode: !!args.devMode,
135
- storageManager: args.storageManager,
136
- transactionManager: args.transactionManager,
137
- cookies: isBrowser() ? getCookieSettings(args, isHTTPS()) : args.cookies,
138
- // Give the developer the ability to disable token signature validation.
139
- ignoreSignature: !!args.ignoreSignature,
140
- // Server-side web applications
141
- clientSecret: args.clientSecret
142
- });
143
- }
144
- //# sourceMappingURL=options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../lib/options.ts"],"names":["removeTrailingSlash","warn","removeNils","assertValidConfig","fetchRequest","browserStorage","serverStorage","isBrowser","isHTTPS","BROWSER_STORAGE","token","storageTypes","useMultipleCookies","cache","transaction","SERVER_STORAGE","getCookieSettings","args","cookieSettings","cookies","secure","sameSite","getDefaultOptions","storageUtil","storageManager","enableSharedStorage","devMode","httpRequestClient","transactionManager","mergeOptions","options","Object","assign","buildOptions","issuer","tokenUrl","authorizeUrl","userinfoUrl","revokeUrl","logoutUrl","clientId","redirectUri","state","scopes","postLogoutRedirectUri","responseMode","responseType","pkce","useInteractionCodeFlow","transformErrorXHR","transformAuthState","restoreOriginalUri","headers","ignoreSignature","clientSecret"],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n/* eslint-disable complexity */\nimport { removeTrailingSlash, warn, removeNils } from './util';\nimport { assertValidConfig } from './builderUtil';\nimport { OktaAuthOptions, StorageManagerOptions } from './types';\n\nimport fetchRequest from './fetch/fetchRequest';\nimport browserStorage from './browser/browserStorage';\nimport serverStorage from './server/serverStorage';\nimport { isBrowser, isHTTPS } from './features';\n\nconst BROWSER_STORAGE: StorageManagerOptions = {\n token: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ],\n useMultipleCookies: true\n },\n cache: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n transaction: {\n storageTypes: [\n 'sessionStorage',\n 'localStorage',\n 'cookie'\n ]\n },\n 'shared-transaction': {\n storageTypes: [\n 'localStorage'\n ]\n },\n 'original-uri': {\n storageTypes: [\n 'localStorage'\n ]\n }\n};\n\nconst SERVER_STORAGE: StorageManagerOptions = {\n token: {\n storageTypes: [\n 'memory'\n ]\n },\n cache: {\n storageTypes: [\n 'memory'\n ]\n },\n transaction: {\n storageTypes: [\n 'memory'\n ]\n }\n};\n\nfunction getCookieSettings(args: OktaAuthOptions = {}, isHTTPS: boolean) {\n // Secure cookies will be automatically used on a HTTPS connection\n // Non-secure cookies will be automatically used on a HTTP connection\n // secure option can override the automatic behavior\n var cookieSettings = args.cookies || {};\n if (typeof cookieSettings.secure === 'undefined') {\n cookieSettings.secure = isHTTPS;\n }\n if (typeof cookieSettings.sameSite === 'undefined') {\n cookieSettings.sameSite = cookieSettings.secure ? 'none' : 'lax';\n }\n\n // If secure=true, but the connection is not HTTPS, set secure=false.\n if (cookieSettings.secure && !isHTTPS) {\n // eslint-disable-next-line no-console\n warn(\n 'The current page is not being served with the HTTPS protocol.\\n' +\n 'For security reasons, we strongly recommend using HTTPS.\\n' +\n 'If you cannot use HTTPS, set \"cookies.secure\" option to false.'\n );\n cookieSettings.secure = false;\n }\n\n // Chrome >= 80 will block cookies with SameSite=None unless they are also Secure\n // If sameSite=none, but the connection is not HTTPS, set sameSite=lax.\n if (cookieSettings.sameSite === 'none' && !cookieSettings.secure) {\n cookieSettings.sameSite = 'lax';\n }\n\n return cookieSettings;\n}\n\n\nexport function getDefaultOptions(): OktaAuthOptions {\n const storageUtil = isBrowser() ? browserStorage : serverStorage;\n const storageManager = isBrowser() ? BROWSER_STORAGE : SERVER_STORAGE;\n const enableSharedStorage = isBrowser() ? true : false; // localStorage for multi-tab flows (browser only)\n return {\n devMode: false,\n httpRequestClient: fetchRequest,\n storageUtil,\n storageManager,\n transactionManager: {\n enableSharedStorage\n }\n };\n}\n\nfunction mergeOptions(options, args): OktaAuthOptions {\n return Object.assign({}, options, removeNils(args), {\n storageManager: Object.assign({}, options.storageManager, args.storageManager),\n transactionManager: Object.assign({}, options.transactionManager, args.transactionManager),\n });\n}\n\nexport function buildOptions(args: OktaAuthOptions = {}): OktaAuthOptions {\n assertValidConfig(args);\n args = mergeOptions(getDefaultOptions(), args);\n return removeNils({\n // OIDC configuration\n issuer: removeTrailingSlash(args.issuer),\n tokenUrl: removeTrailingSlash(args.tokenUrl),\n authorizeUrl: removeTrailingSlash(args.authorizeUrl),\n userinfoUrl: removeTrailingSlash(args.userinfoUrl),\n revokeUrl: removeTrailingSlash(args.revokeUrl),\n logoutUrl: removeTrailingSlash(args.logoutUrl),\n clientId: args.clientId,\n redirectUri: args.redirectUri,\n state: args.state,\n scopes: args.scopes,\n postLogoutRedirectUri: args.postLogoutRedirectUri,\n responseMode: args.responseMode,\n responseType: args.responseType,\n pkce: args.pkce === false ? false : true, // PKCE defaults to true\n useInteractionCodeFlow: args.useInteractionCodeFlow,\n\n // Internal options\n httpRequestClient: args.httpRequestClient,\n transformErrorXHR: args.transformErrorXHR,\n transformAuthState: args.transformAuthState,\n restoreOriginalUri: args.restoreOriginalUri,\n storageUtil: args.storageUtil,\n headers: args.headers,\n devMode: !!args.devMode,\n storageManager: args.storageManager,\n transactionManager: args.transactionManager,\n cookies: isBrowser() ? getCookieSettings(args, isHTTPS()) : args.cookies,\n\n // Give the developer the ability to disable token signature validation.\n ignoreSignature: !!args.ignoreSignature,\n\n // Server-side web applications\n clientSecret: args.clientSecret\n });\n}\n"],"file":"options.js"}
@@ -1,111 +0,0 @@
1
- /*!
2
- * Copyright (c) 2018-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- *
12
- */
13
- import { AuthSdkError } from '../errors';
14
-
15
- var NodeCache = require('node-cache'); // commonJS module cannot be imported without esModuleInterop
16
- // this is a SHARED memory storage to support a stateless http server
17
-
18
-
19
- var sharedStorage = typeof NodeCache === 'function' ? new NodeCache() : null;
20
-
21
- class ServerCookies {
22
- // NodeCache
23
- constructor(nodeCache) {
24
- this.nodeCache = nodeCache;
25
- }
26
-
27
- set(name, value, expiresAt) {
28
- // eslint-disable-next-line no-extra-boolean-cast
29
- if (!!Date.parse(expiresAt)) {
30
- // Time to expiration in seconds
31
- var ttl = (Date.parse(expiresAt) - Date.now()) / 1000;
32
- this.nodeCache.set(name, value, ttl);
33
- } else {
34
- this.nodeCache.set(name, value);
35
- }
36
-
37
- return this.get(name);
38
- }
39
-
40
- get(name) {
41
- return this.nodeCache.get(name);
42
- }
43
-
44
- delete(name) {
45
- return this.nodeCache.del(name);
46
- }
47
-
48
- } // Building this as an object allows us to mock the functions in our tests
49
-
50
-
51
- class ServerStorage {
52
- // NodeCache
53
- constructor(nodeCache) {
54
- this.nodeCache = nodeCache;
55
- this.storage = new ServerCookies(nodeCache);
56
- }
57
-
58
- testStorageType(storageType) {
59
- var supported = false;
60
-
61
- switch (storageType) {
62
- case 'memory':
63
- supported = true;
64
- break;
65
-
66
- default:
67
- break;
68
- }
69
-
70
- return supported;
71
- }
72
-
73
- getStorageByType(storageType) {
74
- var storageProvider = null;
75
-
76
- switch (storageType) {
77
- case 'memory':
78
- storageProvider = this.getStorage();
79
- break;
80
-
81
- default:
82
- throw new AuthSdkError("Unrecognized storage option: ".concat(storageType));
83
- break;
84
- }
85
-
86
- return storageProvider;
87
- }
88
-
89
- findStorageType() {
90
- return 'memory';
91
- } // will be removed in next version. OKTA-362589
92
-
93
-
94
- getHttpCache() {
95
- return null; // stubbed in server.js
96
- } // shared in-memory using node cache
97
-
98
-
99
- getStorage() {
100
- return {
101
- getItem: this.nodeCache.get,
102
- setItem: (key, value) => {
103
- this.nodeCache.set(key, value, '2200-01-01T00:00:00.000Z');
104
- }
105
- };
106
- }
107
-
108
- }
109
-
110
- export default new ServerStorage(sharedStorage);
111
- //# sourceMappingURL=serverStorage.js.map