diff --git a/.version b/.version index fd595728..d1a7a5c1 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -v2.17.0 \ No newline at end of file +v2.18.0 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index f03a42e0..be4be5ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## [v2.18.0](https://github.com/auth0/auth0-react/tree/v2.18.0) (2026-06-10) +[Full Changelog](https://github.com/auth0/auth0-react/compare/v2.17.0...v2.18.0) + +**Added** +- feat: add passkey API support for signup and login methods [\#1114](https://github.com/auth0/auth0-react/pull/1114) ([amitsingh05667](https://github.com/amitsingh05667)) + + ## [v2.17.0](https://github.com/auth0/auth0-react/tree/v2.17.0) (2026-05-22) [Full Changelog](https://github.com/auth0/auth0-react/compare/v2.16.2...v2.17.0) diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js index ab497ff5..9b0f20fe 100644 --- a/docs/assets/hierarchy.js +++ b/docs/assets/hierarchy.js @@ -1 +1 @@ -window.hierarchyData = "eJyVlMtu2zAQRf+Fa6aR+RBt7Qr3gQJuU6RpuwiyIOixRYQmVZJeFIH/vbCMppRkl/RKgHRHZ+68XpB3LgbUPHI+w5RSTGj9hJGHjQEVtbMBNS+I0Pr4sHIHqEFfXbfvVm6r7V13kmD0rO0aNYTXGO29QQ3SNoLfSAXhdqJ/08adQRgpI0NADYphfXP8wc1r0PFjq83ag0XNI2Hk6YARYSTJ4iPEB/cM9qeObU8oS+ZSWEFOB4wopUkKn5ZStZABnkTXWqa8t0x5annllDTfovNyC0P0jMz/onsChNuJ+GIKpxdHmqgS2oPegdvH9947/z9QqsswBhYZE73FRVrSzxt5D7/22sM6Cx5r8wYZIeM5XkqrwJgC3Bl5AZGJMbG0rhNxAU1M/N11YMtQr8oCzoInnLf72IKNWsnjJmVhZ+R5IicsnRIdgrbbe9h4CG2/z/lpuRBTwOazwd2x4LXK8lLdNWtBRYXpgmJGCGaCYLbgmBOGuahxTSpci35tuEhP8vcA7zrXfXFWQTaziThfgpqkl2HprAWVn+BUV8AQYngISg7A1eUVFcGCCCw4wUIIPK/6QysqMoSvdIjJpDofStK5EJU3L8jYvPXOmB3YfJmn6gIeH/ldttIYsNv8+EzEBbRxa3+A15vfJahEmefMx138V5cPUpU28XxQjn44/AHvIBUb" \ No newline at end of file +window.hierarchyData = "eJyVlF1v0zAUhv+Lrz1W/BEnuUMdIKTC0BhwMe3Cck8ba64dbPcCTf3vqKnY3KSd3atIyXvynPd8PSPvXAyofeCcYko5JrR+xMjDyoCK2tmA2mdEaL1/WLkB1KLvrt/2C7fW9rY/SDB60naJWsIrjLbeoBZpG8GvpIJwPdG/6+LGIIyUkSGgFsWwvNr/4OolaP+x02bpwaL2gTD2uMOIMJZk8RnivXsC+1vHbiCUJXMurCCnHUaU8iSFL3OpOsgAD6JLLVM+WKY8tbxwSpof0Xm5hmP0e1L/Rw8ECNcT8dkUDi/2NEES2r3egNvGj947/xYo1WUYRxYZawaLTVrSryt5B3+22sMyCx5r8wYZYeM5nkurwJgC3Al5AZE1Y2JpXSfiApqY+LvtwZahXpQFnEYknA/b2IGNWsn9JmVhJ+R5IidVOiU6BG3Xd7DyELphn/PTciamgM3p0d2x4LXK8lLdJWtBBcG04ZgRhplgmDUCc1JhLmpcEYIrMawNF+lJ/hngpnf9N2cVZDObiPMlqEh6GebOWlD5CU51BQzRHB+CkgNwcXnFjGFBGiw4w0I0uJ4Nh1bM2DF8oUNMJtX5UJLOmai8eUHG5q13xmzA5ss8VRfw+MjvvJPGgF3nx2ciLqCNW/sLvF79LUElyjynHnfxtS6fpCpt4umgHH23+wdsmhVr" \ No newline at end of file diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js index f5cf2b99..687521e4 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "eJytmcty0zAUht/F65ZeoAWy64S2dKYhmfTCgmEh5JNYU1kyklwaGN6dsR3bUnRxKrNsz6//08U6OlK+/UkUvKhkkixBFpxJuN8UkBwkBVJZMkmAlbk80mNvMpXT5CB5IixNJh8OEkyRlMkkUTI9JPIQXhQIhmjy96DzvihVBkwRjBTh7FIILnpE3R7kkUNksk5O96NNOWOAlQejR+P8r4GBINjjr0fj/G/YDHIuNlOEM7ABRjiOcMsxoneKC7QGD8WSxJFmKzTNEKXA1uCZMEsSTbpkglOaA/Otva35D6wrhBUXch+kLo0n+0GjfG+JVNoeDA7Jo41mL+FnSQSkfqKhiOY8giCrjZ+ixSMZRErC1ktYCZDZPX8CX7rzKeO482o1PKQ+ZnlrDgtelMUUMQyUehfCIYrrb200L7yzY8ZHMO5JDrz0JQRLEkcKQ8b7P0j4VPDiC2fYl0UtSTTJbR7pd4HVlCKS956EKRArhKsTfxs0rU/PzvcuKo6nnFV/3rSmbo5LaUHd9Yo+1zuWnSK+/1yQ33W5s0AC5dKL2tHFAbtT1uh8gBxqMLILbUUZ5raqSBglwNSUsxVZl6KePjfO1sUBm4P+MkeEBmbVUo2B9VVFgNWLxqDmqhgcVacZA1qUMhsk9aIxqLtcDpI6zRjQIycYBlGaKg52DaquJO4IBaboZl5UX7Mb6dGOA38lKtue3cPkXXEc+mbnBqOBbhw3l71t07qPbt8mFmd8y9e8VKH5MRShc6oRPgg67NaL4no9W6GLgjSp0onRBXGIpris03BoPLZsBO6WrwkbpOmqONgSUiIAq+3rwwXGvGTBjyDYYlwnBgftEoa+w+baFEhvuiCu71WuqOu4heCFG2JKQv1tlf1zU3u9DM3KYKtgSVkUdwopLU+pTVFVd9v/77Q9/vj+5Ox0t9pdCP5MUhBWL7deDs2rfKsRNjt4H4Klfj3Lvdl9rMCet1h15kc/qDXhXcDpsF9hWVlUD2RmSan5t8ERDGPbtxtyCbKkykIGtKN7AOnW10Pt4oMrUkrF8+ah4wVniK3Bs/J+Zfxo+krYvno0VFsxlrabEHWOMxe+gnAFCmcgmj2xizCC8Yz6roywIs/Nk8JnxFKqvw80NI8snjtboea6Yv4W0dCMYDyj+bpYWnDi/ySconim/g7Ro56RIFU+Mt8pTMpbbxrtfVYlw/UmMTOnaXT+TjMqZX2zP3Z5tLFA81/teetq3wX3MLAP1JCjrbYQ3/8BDxlK8A==" \ No newline at end of file +window.navigationData = "eJytmdty3CgQht9F187GcQ6b+M41cRJX2eupGTt7sZULgnokygi0gLyepPLuKZ1GIA4aw17a/fN/CKmbhvnnZ6bgSWXn2QZkzZmEu30N2UlWI1Vm5xmwppIv9dgfpapodpI9EJZn5+9PMkyRlNl5pmT+gsgX8KRAMESzXycH74tGlcAUwUgRzi6F4GJCdONBvnSITNars+NoK84YYOXB6NE4/8/AQBDs8dejcf5X7AYqLvYrhEuwAUY4jnDNMaJbxQUqwEOxJHGkmx1alYhSYAV4FsySRJMumeCUVsB8797W/A+sTwgrLuQxSF0aT/aDknyviVRaDgYfyaONZm/g34YIyP1EQxHN+QqC7PZ+ihaPZBApCSs2sBMgyzv+AL5y51PGcW/bt+EhTTHLW3NYIykfYL+UrU5Z3JwHqzAo3f8zqNB7cKmSeBsoiFQgwjxDFcnjdVOvEMNAqTd1HKIE2m3tX0cjnsC4IxXwxlfCLUkcKQxJ97+X8LHm9V+cYV8mWZJokts80u8CqxVFpJo8CVMgdgi3PdoQNK3P3r47ug08XXHW/nk1mro5LqUFdXeY+lrPLA+K+PlzQX50DeoaCVRJL2qmiwMeqqwx+QA5NCBxCuMZIMwdVZEwSoCpFWc7UjSiWz43ztbFAfvW7LJChAZW1VKlwKY+MMCaRCmoW1UvPtVBkwJaN7JcJE2iFNS2koukgyYF9JUTDIsoTRUHG/uOLaHAFN3f1u3X7EZ6tGngv4kqh717mTwXx6GvZmdODXTlOGsebZt3c3T79rE442te8EaF1sdQhPapXngv6LLbJIqb9c0OXdSkL5VOjC6IQwy9bBgzF0Wiuj62q/ihpbNlCbhrXhC2SNNVcbAN5EQAVsPV1AXGvGHB7y04Im0Siw/tEoY++f5MHaikuiBu7m1Z6lrGteC1G2JKQvMdldNd5Hj3EFqVxVHB7rWutwoprSSqfd02ksP/Z2NPP/z56u3ZvLFeC/5IchDWLAcvh+ZZvu0T9hl8DMFSP5/lTnYfK5DzFqvbZNB3ai34IeB0OK6HbS3a21Oze9X8x2ACw0j7MSE3IBuqLGRAmzwDyAdfD/UQX3wjjVS86m9gnnCJWAGeN+9Xxj/N1HTbp5yeaitSafOCqHOctfAZhE+gcAmiz4k5wgjGM7pjOcKKPPa3F18Qy6l+FdHTPLJ47s0O9Scj84eqnmYE4xlDy+LeCnuSQ5LM25KCOfpwA2ho4ol9/rC85sT/0TtF8Uz9UmdCPSJB2oprXvqYlNfejWLy2TUMd4ti7g2m0bs3mlEju2uSU5fHGAsM/2/sKFzjD8EjDOyWIeRoqy3Et99wCFX0" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index ef3cdb78..2818b70b 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "eJy1mm2PmzgQx7+L9y3dxg9JNnnX2+tJlapr1VZ3L6JVRcHZoLKYA9IHRfvdTzZPYzyhJqHvouD5zzD+zdiAT6RQ30uy3Z3I1ySLyZayu4Bk4ZMkW/Lu1bE6vC4KVZCAHIuUbEmUhmUpy5f9pdtD9ZSSoL1CtoQ8B63akrJOLVJZWRXHqPq13I09FkgHJA8LmVV2dL1DumCi8yh9Qr9pR13l5XMsy6hI8ipRmZ/HgcUE72y56pzr64t7lVXyR/Umq2SxDyPZBZC0/5Qv0YGjc2fdZKSyTEbVqyhSx6z6N6kOH2ScFDKqpjm7aYTCWuh7Uh2KXghPAn6P5wItZFjJv2QVHWQxNTZju+9s5wjnWFbq6ZP6KrPXP6JDmD1OnJ2bWqHSCrJXmCE0uzr8gnFrpSrjF0n5IskOskgqGV8eTnNzJldTw2psq8Z2huw8ykwWYSX/zFX+vlBqPzGk1j7OVZ439rOEpWtQlqVJ08cklVmV/pwcm64/WZYmX2UvMnuAulG8V/kxvypC3SXyRmWeEO9Vtk8ej0Vo9Wvv2KKB+TxBadT+VtnU/q0D0pRljek8wbyJzQTep2HyVE4PKInNzEWt+QxBHcIsTmW77NyHafoljL5ODK0WaZecqBeZIcCk1MNlViVRWHfCKZElZTiw/g1NNinfqjBOssfJwaWd3W8IK1WPiekV91cvl0ZKN4zftm52wV7S2LrwZuxnXUAXbsm6mObdiaXqUR0viKU2miGAp3040XttMYPr8vJuXs7ezY/l5J1wYzJPqcPnlbdmft+Zpx50WbEGjD6fQNmW/Lca5RF1bJy3E11i5l7fFypH5e0R/k9XuvMvPAVv2sE4GYMgx++kWW0SlX2Q/x2TQsYjuful0aSnSQ3L5V5ueoXxNJy/w7FmenUW6p6qOpmZg1TZH3KvCmkbXxGuyr4YwXAoOHvgbQWe2YN4x1tYOjOHWcjqWGSf1BUR1hKVmiU4ttis6bJ/lfYqzz9WYdUvLdXPXDf05u/Jr3Vk3LzYGRO86QaH3eAzq1Mb3tn0lrnKSvlZexl1ORx5qb/BdOKufjFhiBdnXprG+y2JZTFsIo1TZMj4CjTmw+yZ00RmzpKKeHMGX+nXPAT7+oWDJ/m9H0d0eHlUmw9u536wDn0LiyT8kg72RqOSK4FnqNPcH7PI3LWdFF/RY2m6/ALRay/5Sn1vtwaIVndtqpjbvkbU3cGYu4eAJFksf5DtiXyTRalXoi1ht/x2QwKyT2Qa6y8WdSQBidTTkzRcxCo6mp8PzbB/pP6CoAfXo18uSLBbBHx5u1itHh6CXWtsLpg/Wo3+H2NISbCjmCF1DKllyEiwYwHb3G6Wa8uQOYbMMuQk2HHMI3cMuWUoSLATmKFwDIVluCTBbokZLh3DpWW4IsFuhRmuHMOVZbgmwW6NGa4dw7VleHcuq3eO4Z1luCHB7g7zuHEMNzYAmocNSoDLDh3AY+hBuaMIPzZAVGNBcfZchqgNEdVoUIYauxxRGySq8aAog9RlidowUY0IRTmkLk/UBopqTCjKInWZojZUVKNCUR6pyxW1waIaF4oySV22qA0X1chQFC/q8kVtwJhmhqKEMZcwZhPGNDMMJYy5hLFBizI9CiWMIV3KJoxpZhhKGHMJYzZhTDPDUMKYSxizCWOaGYYSxlzCmE0Y08wwlDDmEsZswphmhqGEMZcwZhPGTO9CCWMuYcwmjGlmGEoYcwljNmFcM8NQwrhLGLcJ45oZjhLGXcK4TRjXzHCUMO4SxgcLoVkJUcI4shbahHHNDMfXUZcwbhPGNTNcYOsMdwnjNmFcM8NRwrhLGLcJ45oZvkI9u4RxmzCumeEoYdwljNuE8c35e3YJ4zZhQjPDUTyFS5iwCROGMBRP4RImbMKEZkageAqXMGETJvjZbAuXMDHYbpn9Fsq2QHZcNmFCMyNQtoVLmLAJE5oZgbItXMKETZjQzAh8n+gSJmzChGZGoGwLl7DmL7Ot/yaLSsZv6u39bkfCPC/rNxkn8rnZ9fNl+5RxInxFtqfn536Xvz09g42+vqZ9Ne9Ee43+FNOJsI2/RvdesZcStJcSYrJU9+rI0gSS/op592wJlBiQWk7X6t5RgvyD3InFdEnz9c28Z8DEN0CcXihuXiYg4mIBxJmX+Nh5pF4YEOmXY/ddGUjBCvC9rgUE95Xtz8X1ioBQv5QimHOQO+6pYp+X6rXADfrVL/qxttdb93prL73mnBLoB6Ad1DZ3/kL2UT2QMpAxPzX7nFKvBCrOr1khx4t6NVBi1K9+z50IAogBPKgfHmcP8QBVSK5fwbrHb4AcmGbqNyX24RkgBSaX+vVo99gLkAMdn/q1kHNHVYAoaEvUr9CcUyZADVQt9SszcCwE6IBqpX5VZn8tAwUG8OB+eIyf/wBRgpKjfjU3PLsBxEDFMb+KQw5dgG4Fio35FVt7cAKIgOQx7+SpI7ZqM0Aa8yPNnKUACrAD+5WmMqgOOzlIjV+mz33bBJiB2LhnbPYHSKAFFwW/vtEqnasCBgqT+RXm4LsZCA8UJ/crzv7DGJAB7Ywva0PuV0XlmYbLQOKYX+KOpXQ2/gLICD9S68MuIBJwc8yvV+tCdkOBu3y/eet08vqICQgKTBzzm7hWrIe+6D7RgChBaYtrhTF6QW/kHhX7EJA8yWWaZJJsdw/Pz/8DKTrbBQ=="; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/docs/classes/AuthenticationError.html b/docs/classes/AuthenticationError.html index a0eab8ee..1c604a21 100644 --- a/docs/classes/AuthenticationError.html +++ b/docs/classes/AuthenticationError.html @@ -1,6 +1,6 @@
Thrown when handling the redirect callback for the connect flow fails, will be one of Auth0's Authentication API's Standard Error Responses: https://auth0.com/docs/api/authentication?javascript#standard-error-responses
-Thrown when network requests to the Auth server fail.
-try {
const challenge = await mfa.challenge({
mfaToken: mfaToken,
challengeType: 'otp',
authenticatorId: 'otp|dev_123'
});
} catch (error) {
if (error instanceof MfaChallengeError) {
console.log(error.error); // 'too_many_attempts'
console.log(error.error_description); // 'Rate limit exceeded'
}
}
-Base class for MFA-related errors in auth0-spa-js. Extends GenericError for unified error hierarchy across the SDK.
-Error thrown when the token exchange results in a mfa_required error
try {
const tokens = await mfa.verify({
mfaToken: mfaToken,
grant_type: 'http://auth0.com/oauth/grant-type/mfa-otp',
otp: '123456'
});
} catch (error) {
if (error instanceof MfaVerifyError) {
console.log(error.error); // 'invalid_otp' or 'context_not_found'
console.log(error.error_description); // Error details
}
}
-Error thrown when there is no refresh token to use
-An OAuth2 error will come from the authorization server and will have at least an error property which will
be the error code. And possibly an error_description property
See: https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.3.1.2.6
-Optionalerror_description: stringOptionalerror_description: stringOptionalerror_OptionalstackStaticstackThe Error.stackTraceLimit property specifies the number of stack frames
collected by a stack trace (whether generated by new Error().stack or
Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes
diff --git a/docs/classes/PasskeyChallengeError.html b/docs/classes/PasskeyChallengeError.html
new file mode 100644
index 00000000..263e743e
--- /dev/null
+++ b/docs/classes/PasskeyChallengeError.html
@@ -0,0 +1,35 @@
+
Error thrown when requesting a passkey login challenge fails.
+Optionalcause: PasskeyApiErrorResponseOptionalcauseOptionalstackStaticstackThe Error.stackTraceLimit property specifies the number of stack frames
+collected by a stack trace (whether generated by new Error().stack or
+Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes
+will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will +not capture any frames.
+StaticcaptureCreates a .stack property on targetObject, which when accessed returns
+a string representing the location in the code at which
+Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
+
+
+The first line of the trace will be prefixed with
+${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames
+above constructorOpt, including constructorOpt, will be omitted from the
+generated stack trace.
The constructorOpt argument is useful for hiding implementation
+details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
+
+
+OptionalconstructorOpt: FunctionStaticprepareOptionalcause: PasskeyErrorResponseOptional ReadonlycauseReadonlycodeOptionalstackStaticstackThe Error.stackTraceLimit property specifies the number of stack frames
+collected by a stack trace (whether generated by new Error().stack or
+Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes
+will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will +not capture any frames.
+StaticcaptureCreates a .stack property on targetObject, which when accessed returns
+a string representing the location in the code at which
+Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
+
+
+The first line of the trace will be prefixed with
+${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames
+above constructorOpt, including constructorOpt, will be omitted from the
+generated stack trace.
The constructorOpt argument is useful for hiding implementation
+details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
+
+
+OptionalconstructorOpt: FunctionStaticprepareError thrown when exchanging a passkey credential for tokens fails.
+Optionalcause: PasskeyApiErrorResponseOptionalcauseOptionalstackStaticstackThe Error.stackTraceLimit property specifies the number of stack frames
+collected by a stack trace (whether generated by new Error().stack or
+Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes
+will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will +not capture any frames.
+StaticcaptureCreates a .stack property on targetObject, which when accessed returns
+a string representing the location in the code at which
+Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
+
+
+The first line of the trace will be prefixed with
+${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames
+above constructorOpt, including constructorOpt, will be omitted from the
+generated stack trace.
The constructorOpt argument is useful for hiding implementation
+details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
+
+
+OptionalconstructorOpt: FunctionStaticprepareError thrown when requesting a passkey register challenge fails.
+Optionalcause: PasskeyApiErrorResponseOptionalcauseOptionalstackStaticstackThe Error.stackTraceLimit property specifies the number of stack frames
+collected by a stack trace (whether generated by new Error().stack or
+Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes
+will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will +not capture any frames.
+StaticcaptureCreates a .stack property on targetObject, which when accessed returns
+a string representing the location in the code at which
+Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
+
+
+The first line of the trace will be prefixed with
+${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames
+above constructorOpt, including constructorOpt, will be omitted from the
+generated stack trace.
The constructorOpt argument is useful for hiding implementation
+details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
+
+
+OptionalconstructorOpt: FunctionStaticprepareThrown when network requests to the Auth server fail.
-Thrown when network requests to the Auth server fail.
-Error thrown when the login popup times out (if the user does not complete auth)
-Thrown when silent auth times out (usually due to a configuration issue) or when network requests to the Auth server timeout.
-Error thrown when the wrong DPoP nonce is used and a potential subsequent retry wasn't able to fix it.
-Provides the Auth0Context to its child components.
-Use the useAuth0 hook in your components to access the auth state and methods.
TUser is an optional type param to provide a type to the user field.
Wrap your class components in this Higher Order Component to give them access to the Auth0Context.
Providing a context as the second argument allows you to configure the Auth0Provider the Auth0Context should come from f you have multiple within your application.
-When you wrap your components in this Higher Order Component and an anonymous user visits your component they will be redirected to the login page; after login they will be returned to the page they were redirected from.
-Contains the authenticated state and authentication methods provided by the useAuth0 hook.
await connectAccountWithRedirect({
connection: 'google-oauth2',
scopes: ['openid', 'profile', 'email', 'https://www.googleapis.com/auth/drive.readonly'],
authorization_params: {
// additional authorization params to forward to the authorization server
}
});
@@ -28,7 +29,7 @@
where the user can authenticate and authorize the account to be connected.
If connecting the account is successful onRedirectCallback will be called
with the details of the connected account.
-Returns a new Fetcher class that will contain a fetchWithAuth() method.
+
Returns a new Fetcher class that will contain a fetchWithAuth() method.
This is a drop-in replacement for the Fetch API's fetch() method, but will
handle certain authentication logic for you, like building the proper auth
headers or managing DPoP nonces and retries automatically.
Check the EXAMPLES.md file for a deeper look into this method.
Optionalconfig: FetcherConfig<TOutput>const tokenResponse = await customTokenExchange({
subject_token: 'ey...',
subject_token_type: 'urn:acme:legacy-system-token',
actor_token: 'ey...',
actor_token_type: 'https://idp.example.com/token-type/agent',
});
+Optionalconfig: FetcherConfig<TOutput>const tokenResponse = await customTokenExchange({
subject_token: 'ey...',
subject_token_type: 'urn:acme:legacy-system-token',
actor_token: 'ey...',
actor_token_type: 'https://idp.example.com/token-type/agent',
});
Exchanges an external subject token for Auth0 tokens without affecting the current session.
@@ -50,7 +51,7 @@refresh_token in the response is expected and will not cause an error.
The options required to perform the token exchange.
A promise that resolves to the token endpoint response.
-The options required to perform the token exchange
+The options required to perform the token exchange
A promise that resolves to the token endpoint response containing Auth0 tokens
Use loginWithCustomTokenExchange() instead. This method will be removed in the next major version.
const tokenResponse = await exchangeToken({
subject_token: 'external_token_value',
subject_token_type: 'urn:acme:legacy-system-token',
scope: 'openid profile email'
});
@@ -64,13 +65,13 @@
// Instead of:
const tokens = await exchangeToken(options);
// Use:
const tokens = await loginWithCustomTokenExchange(options);
-Returns a string to be used to demonstrate possession of the private +
Returns a string to be used to demonstrate possession of the private key used to cryptographically bind access tokens with DPoP.
It requires enabling the Auth0ClientOptions.useDpop option.
Returns a string to be used to demonstrate possession of the private key used to cryptographically bind access tokens with DPoP.
It requires enabling the Auth0ClientOptions.useDpop option.
-const token = await getAccessTokenSilently(options);
+const token = await getAccessTokenSilently(options);
If there's a valid token stored, return it. Otherwise, opens an @@ -89,7 +90,7 @@ back to using an iframe to make the token exchange.
Note that in all cases, falling back to an iframe requires access to
the auth0 cookie.
const token = await getTokenWithPopup(options, config);
+const token = await getTokenWithPopup(options, config);
Get an access token interactively.
@@ -97,7 +98,7 @@ provided as arguments. Random and securestate and nonce
parameters will be auto-generated. If the response is successful,
results will be valid according to their expiration times.
-const config = getConfiguration();
// { domain: 'tenant.auth0.com', clientId: 'abc123' }
+const config = getConfiguration();
// { domain: 'tenant.auth0.com', clientId: 'abc123' }
Returns a readonly copy of the initialization configuration @@ -107,7 +108,7 @@
Returns the current DPoP nonce used for making requests to Auth0.
+Returns the current DPoP nonce used for making requests to Auth0.
It can return undefined because when starting fresh it will not
be populated until after the first response from the server.
It requires enabling the Auth0ClientOptions.useDpop option.
@@ -122,16 +123,16 @@const claims = await getIdTokenClaims();
+const claims = await getIdTokenClaims();
Returns all claims from the id_token if available.
-After the browser redirects back to the callback page, +
After the browser redirects back to the callback page,
call handleRedirectCallback to handle success and error
responses from Auth0. If the response is successful, results
will be valid according to their expiration times.
Optionalurl: stringThe URL to that should be used to retrieve the state and code values. Defaults to window.location.href if not given.
await loginWithCustomTokenExchange(options);
+await loginWithCustomTokenExchange(options);
Exchanges an external subject token for Auth0 tokens and logs the user in. @@ -155,7 +156,7 @@
const options = {
subject_token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp...',
subject_token_type: 'urn:acme:legacy-system-token',
scope: 'openid profile email',
audience: 'https://api.example.com',
organization: 'org_12345'
};
try {
const tokenResponse = await loginWithCustomTokenExchange(options);
console.log('Access token:', tokenResponse.access_token);
// User is now logged in - access user info
const user = await getUser();
console.log('Logged in user:', user);
} catch (error) {
console.error('Token exchange failed:', error);
}
-await loginWithPopup(options, config);
+await loginWithPopup(options, config);
Opens a popup with the /authorize URL using the parameters
@@ -165,20 +166,20 @@
IMPORTANT: This method has to be called from an event handler that was started by the user like a button click, for example, otherwise the popup will be blocked in most browsers.
-await loginWithRedirect(options);
+await loginWithRedirect(options);
Performs a redirect to /authorize using the parameters
provided as arguments. Random and secure state and nonce
parameters will be auto-generated.
auth0.logout({ logoutParams: { returnTo: window.location.origin } });
+auth0.logout({ logoutParams: { returnTo: window.location.origin } });
Clears the application session and performs a redirect to /v2/logout, using
the parameters provided as arguments, to clear the Auth0 session.
If the logoutParams.federated option is specified, it also clears the Identity Provider session.
Read more about how Logout works at Auth0.
const { mfa } = useAuth0();
const authenticators = await mfa.getAuthenticators(mfaToken);
+const { mfa } = useAuth0();
const authenticators = await mfa.getAuthenticators(mfaToken);
MFA API client for Multi-Factor Authentication operations.
@@ -193,7 +194,17 @@const { mfa, getAccessTokenSilently } = useAuth0();
try {
await getAccessTokenSilently();
} catch (error) {
if (error.error === 'mfa_required') {
// Check if enrollment is needed
const factors = await mfa.getEnrollmentFactors(error.mfa_token);
if (factors.length > 0) {
// Enroll in OTP
const enrollment = await mfa.enroll({
mfaToken: error.mfa_token,
factorType: 'otp'
});
console.log('QR Code:', enrollment.barcodeUri);
}
// Get authenticators and challenge
const authenticators = await mfa.getAuthenticators(error.mfa_token);
await mfa.challenge({
mfaToken: error.mfa_token,
challengeType: 'otp',
authenticatorId: authenticators[0].id
});
// Verify with user's code
const tokens = await mfa.verify({
mfaToken: error.mfa_token,
otp: userCode
});
}
}
-Sets the current DPoP nonce used for making requests to Auth0.
+const { passkey } = useAuth0();
const tokens = await passkey.signup({ email: 'user@example.com' });
+
+
+Passkey API client for WebAuthn-based passwordless authentication.
+signup(options) — register a new user and create a passkey credentiallogin(options?) — authenticate an existing user via passkey assertionBoth methods exchange the WebAuthn credential for Auth0 tokens and update
+isAuthenticated / user in the same way as loginWithPopup.
Sets the current DPoP nonce used for making requests to Auth0.
It requires enabling the Auth0ClientOptions.useDpop option.
Sets the current DPoP nonce used for making requests to Auth0.
It requires enabling the Auth0ClientOptions.useDpop option.
@@ -205,4 +216,4 @@Email enrollment parameters
-OptionalemailEmail address (optional, uses user's email if not provided)
diff --git a/docs/interfaces/EnrollOtpParams.html b/docs/interfaces/EnrollOtpParams.html index 559ce36e..9a8674d3 100644 --- a/docs/interfaces/EnrollOtpParams.html +++ b/docs/interfaces/EnrollOtpParams.html @@ -1,5 +1,5 @@OTP (Time-based One-Time Password) enrollment parameters
-The factor type for enrollment
MFA token from mfa_required error
diff --git a/docs/interfaces/EnrollPushParams.html b/docs/interfaces/EnrollPushParams.html index 6a1b93f1..4a457f65 100644 --- a/docs/interfaces/EnrollPushParams.html +++ b/docs/interfaces/EnrollPushParams.html @@ -1,5 +1,5 @@Push notification enrollment parameters
-The factor type for enrollment
MFA token from mfa_required error
diff --git a/docs/interfaces/EnrollSmsParams.html b/docs/interfaces/EnrollSmsParams.html index 7836af72..a4c32ba9 100644 --- a/docs/interfaces/EnrollSmsParams.html +++ b/docs/interfaces/EnrollSmsParams.html @@ -1,5 +1,5 @@SMS enrollment parameters
-The factor type for enrollment
diff --git a/docs/interfaces/EnrollVoiceParams.html b/docs/interfaces/EnrollVoiceParams.html index 4b673f1f..53df7e43 100644 --- a/docs/interfaces/EnrollVoiceParams.html +++ b/docs/interfaces/EnrollVoiceParams.html @@ -1,5 +1,5 @@Voice enrollment parameters
-The factor type for enrollment
diff --git a/docs/interfaces/GetTokenWithPopupOptions.html b/docs/interfaces/GetTokenWithPopupOptions.html index 47b70cb2..e0bbb82b 100644 --- a/docs/interfaces/GetTokenWithPopupOptions.html +++ b/docs/interfaces/GetTokenWithPopupOptions.html @@ -1,4 +1,4 @@ -OptionalauthorizationURL parameters that will be sent back to the Authorization Server. This can be known parameters defined by Auth0 or custom parameters that you define.
diff --git a/docs/interfaces/LogoutOptions.html b/docs/interfaces/LogoutOptions.html index a6e7729f..154558fd 100644 --- a/docs/interfaces/LogoutOptions.html +++ b/docs/interfaces/LogoutOptions.html @@ -1,4 +1,4 @@ -OptionalclientThe clientId of your application.
Client for Auth0 Passkey operations.
+Provides 2 public methods:
+signup — Register a new user with a passkey (full flow: challenge → WebAuthn → token exchange)login — Sign in with a passkey (full flow: challenge → WebAuthn → token exchange)Sign in with an existing passkey.
+Handles the full flow: requests a login challenge, triggers the browser +WebAuthn assertion ceremony, serializes the result, and exchanges it +for tokens.
+Optionaloptions: PasskeyLoginOptionsOptional passkey login options (optional scope/audience/realm/organization)
+A promise that resolves to the token endpoint response containing access/ID tokens
+Register a new user with a passkey.
+Handles the full flow: requests a signup challenge, triggers the browser +WebAuthn credential creation ceremony, serializes the result, and exchanges +it for tokens.
+Passkey signup options (user identifier, optional scope/audience)
+A promise that resolves to the token endpoint response containing access/ID tokens
+Components wrapped in withAuth0 will have an additional auth0 prop
Options for the withAuthenticationRequired Higher Order Component
-OptionalcontextThe context to be used when calling useAuth0, this should only be provided if you are using multiple Auth0Providers within your application and you wish to tie a specific component to a Auth0Provider other than the Auth0Provider associated with the default Auth0Context.
-OptionalloginwithAuthenticationRequired(Profile, {
loginOptions: {
appState: {
customProp: 'foo'
}
}
})
+OptionalloginwithAuthenticationRequired(Profile, {
loginOptions: {
appState: {
customProp: 'foo'
}
}
})
Pass additional login options, like extra appState to the login page.
This will be merged with the returnTo option used by the onRedirectCallback handler.
OptionalonwithAuthenticationRequired(Profile, {
onBeforeAuthentication: () => { analyticsLibrary.track('login_triggered'); }
})
+OptionalonwithAuthenticationRequired(Profile, {
onBeforeAuthentication: () => { analyticsLibrary.track('login_triggered'); }
})
Allows executing logic before the user is redirected to the login page.
-OptionalonwithAuthenticationRequired(Profile, {
onRedirecting: () => <div>Redirecting you to the login...</div>
})
+OptionalonwithAuthenticationRequired(Profile, {
onRedirecting: () => <div>Redirecting you to the login...</div>
})
Render a message to show that the user is being redirected to the login.
-OptionalreturnwithAuthenticationRequired(Profile, {
returnTo: '/profile'
})
+OptionalreturnwithAuthenticationRequired(Profile, {
returnTo: '/profile'
})
or
@@ -28,4 +28,4 @@Add a path for the onRedirectCallback handler to return the user to after login.
The state of the application before the user was redirected to the login page and any account that the user may have connected to.
-The main configuration to instantiate the Auth0Provider.
Either provide domain and clientId (Auth0ProviderWithConfigOptions)
or a pre-configured client instance (Auth0ProviderWithClientOptions).
Options for Auth0Provider when configuring Auth0 via domain and clientId.
Use this type when building wrapper components around Auth0Provider.
The account that has been connected during the connect flow.
-Options for passkey login (authenticating with an existing passkey).
+Options for passkey signup (registering a new user with a passkey).
+ConstThe Auth0 Context
-
Thrown when handling the redirect callback fails, will be one of Auth0's Authentication API's Standard Error Responses: https://auth0.com/docs/api/authentication?javascript#standard-error-responses
-