diff --git a/.version b/.version index 581a57bf5..5a74a2876 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -v4.17.0 +v4.18.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 904591501..00ae4b4b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Change Log +## [v4.18.0](https://github.com/auth0/nextjs-auth0/tree/v4.18.0) (2026-04-16) +[Full Changelog](https://github.com/auth0/nextjs-auth0/compare/v4.17.0...v4.18.0) + +**Added** +- feat: add optional `update()` to `SessionDataStore` [\#2590](https://github.com/auth0/nextjs-auth0/pull/2590) ([Piyush-85](https://github.com/Piyush-85)) + +**Fixed** +- fix: defer `AuthClientProvider` construction when `AUTH0_DOMAIN` not set at build time [\#2604](https://github.com/auth0/nextjs-auth0/pull/2604) ([sleitor](https://github.com/sleitor)) +- fix: Next.js edge runtime build error for crypto module [\#2564](https://github.com/auth0/nextjs-auth0/pull/2564) ([Piyush-85](https://github.com/Piyush-85)) + ## [v4.17.0](https://github.com/auth0/nextjs-auth0/tree/v4.17.0) (2026-04-09) [Full Changelog](https://github.com/auth0/nextjs-auth0/compare/v4.16.2...v4.17.0) diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js index 0841db38c..8329097cd 100644 --- a/docs/assets/hierarchy.js +++ b/docs/assets/hierarchy.js @@ -1 +1 @@ -window.hierarchyData = "eJyll11P2zAUhv+Lrw+QOh92escYTEgrIDqxC8SFl7rUIrU720FjiP8+pS3IaRLlhF1Vav2e57Hj+jivxBrjHZnes5QBpRRilj0AsXJZysIrox2ZvhJKaf2hxVqSKZlL55TRZ0Yv1WNlRT2MAHlSekGmNM2AVLYkU6K0l3YpCulO/MtGuuOu4PHKr0sCpCiFc2RKvFsc1ZWOPtL1jytVLqzUZHpP4+ThDQiNk7bR3Bsrrzc77RFCYQ7h8wYkZlmAv5NWLV9mS7Gv8UU4ieJ3BccuSMw4xHwCMU8ftma8y+yn8qtrvxmzOD1Z5ALxSa+G+fV5jY8sViPt07iVhXmW9uXMLEbtmaEiOLGMskBsthS38nelrFycW2vsh8iE8neRbT3pTpy0z9IeH0Z6sbsvamRygPxhnqQ+/7MZiW3FEOh00oG+1M+iVKPRYWwYzRpH11ezFkrfSmfKqn5aWHZnDgPPW/C7Wl6Mhx/kEPDGEXnpXCXteHhnDgFPOjrGbiIz5dbCFyusQX8YoZGGe36+eBqEynqAO34fOoBonMQZZZAlDLJ0AoxSYDQHFifAEgoso8BYBIylwHgEjKfA8ghYngOPEuCTGPiEA6cUeBwBTyjwNAGeMeAshzzKIOcJ5Pm2/bEsXN7r08qvKHZqwWjEArIo3MHK7c47LKsZwODC83qmnFP6ce6Fl1hiK4OA8nCO++NlFLSVwUDTNrRxMxoJb2cREnk483pfGKv+jqK3Qxhs3oetG+k3K7Svm5t0/lManUWGtXiUDGr9nw9WZBIHIl9E8VSshNay/G4eTYV26A5i8LwbX09Kaq+K7ayujJ9Xm42xHnF9aCsNFENoNjp7b+X/VsPqxI3/UlFI53ZXJeyWOYggkI0mG+QvjD0zWu/e4D7Bb+cRMmn47zmrnDfr/VWxXtZH9GHaF0UoZGG3/3pjbtB96n0sAsLCw2v2cloUptL+dKPQLeowMwzNo/B9c/9s9lXQ69pOIcA8ad7cr8zps1Cl+FXKC1F4Yx162r1hhEaetLvlyBbRkRoCv739A01u0q8=" \ No newline at end of file +window.hierarchyData = "eJyll0tP4zAURv+L1xdI7CZ2uuM5QhoeoiNmgViY1KUWqd2xHTQM4r+PQgtym1S5gUVVqfXnc+wk9zqvxFkbPBnf8ZwBpTkwkdwDcWpWqTJoazwZvxJK8+bLyIUiYzJR3mtrjq2Z6cfayWYYAfKkzZSMaZYDqV1FxkSboNxMlsofhJel8vtdwf15WFQESFlJ78mYBD/da2ba+0w3f851NXXKkPEdZeL+DQhlom00Cdapq+VKe4BQnEP4vAFhIonwt8rp2cvFTK7nOJJeofhdwaEbwgQFJjJgorh/N6NdZr91mF+F5ZDN2ZHFblC2U8M+fF3jM4vVKHZp3KjSPiv3cmyng+6ZvklwYjljkdjFTN6oP7V2anrqnHWfIikVHyLv8yl/4JV7Vm5/O7ITu/qhQWZbyF/2SZnTv8uB2FYMg+Yd6HPzLCs9GB3H+tGcxoXixC6kNjfK26purhaW3ZlDwFnWgt828nI4fCuHgI/iGnXufa3ccHhnDgPvqM+rhVxov5ChnGMNdocRGnl8z0+mT71Q1Qzw+x9DexAblThnDPKs+XDgVABnGfBRAnwkgOcCOM+BixS4yIEXKfAiB5FkINIERFqAoCMQVIBgOYiRAJEnIDgDITIoUgpFkUCaJMn9+8Li/b06rMOcYtcWjUbsII9b/4n2q4KHZW0GEDiRxpVCe6/N4yTIoLDEVgYDjde4ri+DoK0MAlqkbejG0WggvJ3FSMQrb+4L6/S/QfR2qB8rkmwXtumkP5w0oeluyocvaXROgtBKk16t7/mgReJjy5Esn8q5NEZVP+2jrdEO3UEEno668c2ilAm6fF/VpQ2Term0LiDOD22lnskwmgKj+W01rA7beJbKUnm/Oithb5mtCAK50WWj/Jl1x9aY1SvcF/jtPEImj5+e49oHu1ifFZttfUQX011RhAKP2/3Jtb1G96mPsQjIxqvNxcthWdrahMOlRreo7Uw/tEjj17r1tVnPgt7XdgoBLpLNo/ulPXyWupIPlTqTZbDOo5e9M9yv0Zx72u1yYI/oSPWR397+A0YH0wk=" \ No newline at end of file diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js index d41513940..b644d27b8 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "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" \ No newline at end of file +window.navigationData = "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" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index 1abc79a1c..d58dfbc8a 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "eJzFnVuT2ziStv9L+ba2P+FAHfrObbt7vNNtO2z37E44JhS0xKriWCVqScpt78T89y8IkBKQeEEmKVXvTbu6ishMEolTPgngXzdl8Ud18+Onf918yffbmx/l7c0+fcxufrzZ7PJsX9/c3hzL3c2PN4/F9rjLqv9nf/3DQ/24u7m92ezSqsqqmx9vbv59e5KRzE9S/iuvH96l99nzY/3wPvufY15m27eHOi/21Ul0vq+z8i7dnKX3lAKab28OadnYejL6bIuYSX0ypti/KsuivEDxs2KftSL6DOiTEzfufbbNy2xT5/v7y0wsPUHXNrTM6mO5/1hcYqOVURfXMU/OVguRyF6nO1lbfz/0GzrSw9RZ7+NdelLzNS3z9LPTYh7v0umS/+h7o0AVenqk7vm5vhsps3dl8TXfZue2c3fcb0w9dEq9x6Zru8/q55tNVlUfiy/ZPq7Of266vmOV/V71vVf7wEgN56oz/UUV9KP217396PJcBec3NT3Yi2KbnSRm++PjSR56st/01j6nsZ9775+fv/711cv1x7fr969+fv/qw1/WH9/+9dWbkaqf3aX5Ltuu62JdZndlVj2s67Zy+0yCArGdv73+8OH1m18us/Ixr6p8f//UNn549eHD67eTrauyqsqLS+2CrvVz89h+nxn/5/sZLnYNp3v13y/+8vzNL68uMcFxvuzb5iHd32cjvl3kk1zRCftMv9Qjp1jPdU+O3eN9ddDis+O2zz3fbIrjvj49W2HLY09fw01fvP3t3a+vPkbctFez452b4vGwy+pB74y+94CVr9+8/vj6+aVW5vu8ztNrW8lyvn4TR/ocwz7H1Y5VXTzazrTtQwa6x74S012u6w/XtlYnqn7W9YNrW62Dn6rv7aGdr9/87fmvr1+uP/z+03++evHR9oTrj39/F3O+QZPz/dd0l2/X1fHzP7NNbXvCdTOVv771nTM+f/Hx7fsr2N55Zrqpi/JPsdz77pea7X3yK9l8blov3xXvBtqS98j0xvPy3dt36xdv3/z8+pff3z//+Prtm/Wr9+/fvucqfbY9FIf1ptjf5ffHMm0GqHV/LACJ6rHtP//6cf3i+a8vfv/VWtfXyGPm/fNLvd6ku81xZw3ktXCuhX999ff1q/9+9/b9x0nGfcm+r7Nvh6KsL7VLxpdGJ5NaybGZ9UhHSoQTGSv2VV0em+Y8Stszv+Co+XssGLNJj1U20oq2yHX0u82W+RG2F2nHdR9OHBlWhYX+NK+IqJ7oIuDtL/SXqH0jnWeEZTxPin+4UW7Vb5frY8f6oSjz/zX9adMP/VKm7YQxam28yBP714DiUd7V896TfGvQNpZnTbCqz6+GPxjDq3g2DfpUE6nNqimu5Zb8v/CwQP/ljuZ9jKvVLDJ0agXHLIzVM79e/+x6vEK9XalfuKg7uI6vXOIbfb7wU7r50iyI9tmuKZPt63wz7Bf9pZ7WRxi6x/jLwAeY4jssCzl+NNG2Hp/ifbxh/+JbxvG1N0X94XhoVmDZdprfBRL+j3wQ23EVfww/0jXrP2r4Bb7QazH2i1+L++LYP9fAT/9p9U11Tqxb90Uvq0dg0Kg6i1gie5FGzC7w6NPWTEzhmGpB7zel34/bwunsx1jR4xk9H2TYLQZskMPsIWpW5Pkn9o4+raNcJPa6k/yk3yqWs4y1p89jBj4Sw20Y1ji+8zKvNsXXrPze6zH+U0/rJ0DXGO8gLzShDrABw18+rlkCmBHV3j3wxF/ZUzPqA5/eYEp7o3o5DWxYY19t0hdlVCTS59Tha0saX7icp7dOowWeto771Y6p8/gbT6iRQbOGa4hlT1hjnPAZePRPqaWLAmTo/abXzLQQWL8NcqbP1VEX//nBSeHgWlEX/6yG0zYGvkXoFR/qtO6fMAUP/ikeQdRN8AfnzaZ7Q2gG2xewfqcGfrtLXzyku102NGUNHnzaGsDqxtRA+GZTRsuYHZxRk21BNv7DP2NlNYyzYL3Nqk2Zm8z9KdaQ8pMtk3MpNK+FRN2EtJC62v5HXv1Hvn/Iyrw2SQ2jLOL3nRGLQM95oU2kFb/al8Vu95gNhCTCJ5+8HSN9IxsyfbmJLRlbwmzKTBuG2jK0gduYx9jAbM1xe0Y257ht49pzxF0mNegem0a1aGjT5CbdU4t+m/4lq50YclFWQ00bF3jyFt6jdmRDj7zxxPbeaxez2Y+zaKj191nE7QQmWMTsCwatG9klDFo6rmfod7NJHcSwhaP6iT4LJ3cXw/Xt9xpviudf03zXbDb82aQzD3YbkRJP3m/06R3ZccReesKqa9iw4eXXeIuGeo5ek7hdxxSbmH3HsH0jOw+Grb7f/y0r87v+KLr/1JP7N9U10qfdF5o4AoYWMIc9hu4hjw10c72Uq5vpmdiOkd6IbRo3fgF3mDRoRWwZNVIFtkweniK15bZNu0llOMoXPPjELRSqG9VIgzebMt7EzGAMM3363Rr43kLs54e8vwbog09cA1DdqBoI3mxKDcTMYNQAV/82q9N8N9KCU6Hr2GD+GWdBW+Q6+qs6rY/VSAtOha5jQ53Xu7EfoStzJQvstsJRBjB2IrL1GzBwBnZj6+NcPOuKT7fL6aPeNosc2ds7OY88bb9EFY3pkdz3mNAXAdXDvVBEp/N1P2y/9H7a7u9jt25yX8uTz3qnk8XOFMc5s+q3u7RzqPdZdSj2zjzYOevoPE+hT1/ypv7Ul6+OPQUOXm30PHisUSPnw1wDH7OqSu+nVM2zc9ELjNFipdXsbM/L4jHN9++zqtgdw6wRcO7Ps60pUZ5KcKpw0IC/+X0wwwDS7U434HVVHbNyjAG5KXE1A367S7vzroZ1P96lZfvw1dQ2kffes54crd2z05W2iYAH9vuaPfyZLXD5Oxv1bTYAX33rbxeq/2CP+bAu/1tePab15mHYiPZ0EOv3j22xkaach/sqK79moUL7azAIRHaJfa7qMt3U7St9qIsyHOtamejZ/tGmtXH8fGVII2vi0iMkPtQXX/LMZn9NMaopvelKX82qBqu55zKyDToXDKIfh7Kosw2Jfkywrco2ZVaPN+1U7mpfqW1eL0wlvEFLQoZR5je2HnuXiFPsm9S2nnXFLrGDxPPy6v1Uj8or5FMTLHKjet2hIdlv6bfn9xO+0UnAY/qtb2o1wbZt1p6LNdKkU7mrWZIdis3DeEO6Ylez435Kc7+/uK17NlTTupyL+xuyv3r2wj+nmJpyfuSJx0miaNTw6LxHtMdwD5cd0m2fnaLT6xO8TUpjXrwplp6KXWxHmaV19nNmpmp8M0ypu1Opi60I997wbTFl29n3wCGUfIsiR+UOGXOfNXWTVVX/iV5T7fBOVplo1F1RblwZV7Dww+lcQLZBQ0cJjtJvvs1P38ke3jHmmC/z+fvns4TUSrjUusd8u91lf6Q9U6Ogg3GLXKq/qtOyft1Eb9JNnX/Nfi3uc35FmdL5ufSuLX2pVcfDNq2zsW5jS13Pc5qjvJ8fcnju95AtTdn0kDdeUp7LXsOi6FHkHJMO6X12uU3evrveyBuxCT78tHODuMoxswT8lqOyNxj29CZxTLIEhe45H6Ynjs+1I/CRWGwS2kUe/jN8BKkc7yP0LSfXTMQcbs302OHu1OqNGhO74MNPWzNxlWNqBr9lpGbSTX1Md7bIBLNs8bwrfj27+jym9zMNe8woO7JvBxM4m/yFOgFX+kZ+tiBGEMQ4+tzT+jDUNsZ9g9eaMu5ErOAMOWz9PR4a+wjDzsnVjvMWe9X3w4cp+ntzF4dtYdHakXY93qXrEhEyllmg9NWsqvuWznFzWEvnHjs4GZW9Rgxsl2Z8Cb/PiqPE0Jzg2Sfvu7DGkf1X+IrT+pCoMax+pNcKUCeQr0aMcp/9c+ok0DilTrxXvKBOkDH8OolZ4WY6DUNnYlq8xNPWz4DeMbXU89IT6mrYsOEa41nk1NvHMt1XqQkm9tJ1+tzT1hHUNqZmgteaxM+wGTx2Ns6C57swSZlhRLobqgO2HT3cDFvAYGYjdFsu/q7M7vJvo+2wRPzQFb6KTVX6daRftCUma/fTLGHWlJPHF0xjzJMjm6XfN3VnHoxU98wtyJxz2deKTdXNTu2xVpxKTTSB3pT5/HB4XxzrrGwiuuank0X2nswuBhs8N7IShhW/PTg+MKC8efYSLzikZfo4XtuzU7n+gDV+t2jOTFpuHt5NtMiWvpJdtJJ+abBZU/RDvs3elcWhep9Vx13d3JpKwYhnMaPghf4z4K/XclPGTbKtxvE3yU5SfqpDvhWnIk9pDr3TmW8V617n/uYc3Eg8TfvwrcQjJI78kCeHHVGx5zJPULNn4aOrNih6Sd3eB13JpYZYtN8UqvJtdmhFjq7w8ANdzTsjdl/inn3WOvdMv3z18/Pff/24fv2yvfjuxa/PX//24WT6+arpDvTgAiNr3LmP+S7f1Vn5MrtLj7v69dYszV/s0twZHM9XNLdGxMtMt+M+22dlWmcvD8Xhr9n3d2lexg0AD4/UHOzl6M6bfZFuHjLaBEGm+bNtV2LTlChOJaYacGarAznu7jaWr4MwpW9LwYuXv2V1uk3rtFff42b7eH6O2+edw61ZVbuJt52K9ve9efvhDMlW/Ac38Znkrtvm3knvKdHvMp3ZvCTwcUqHUsEZcvpbkVcAtKNOAXx+7Hdxqrr5CmFFN7/trebzCvn9qw/v3r758MrcAHruB+19h1aQ/8iAscYgpwrPy+EXb1/SK0aj8vvDZKhYTOebN81FoSN1m8y89SU2ODHV4I5Y/JXBc5M/9UnW39+9Wj9/8eLVhw/wrtR+zc9ON6N+P2Rrm704AIaiAhl29l0rPsZQ3mXiHEvdYE4sAZSOXE6cw6oYKDiyjv0wdJCFOkn7M0YqKktazFCTsbh+yJ0c62mGeoKewFB4+/IlBo+4znms4RHn/JDxPvKHbGC/QK/rpSAtm6PtGScxG5WOGnLc5tl+w6unsxXnUpebYLebVs/HffdnbbF0hCv3GFHaA8Oz7YdNwfTakyWnslVb9nJzqvFWXE/5yNZ7smBKI/XN8NrkOat3eIwInr2kbe52xR+v91W2OZZZe5D8eN3PjJi8FVOexfR+mPCdY0YeDj+lVfZ7CQnBgGWHw+e0yo7lwAcaY457y6EJVWd1Vk75aq6ggyvoOoZ+zu6Ksls9fEi/OtFato1WRpvCX7UyrmPexjz0vKqy0tCx/H6f7++f7+7HW2lFpZ2oyopKd/Fdodcx9q/Z92sZ+8WIuqaxrydUty2ZX7uSP/jr8ZHmDK3HR5q09aJJ443yY0vXM8sEjiaY05W7khkgxMe35VAcvmTfD7bw9QyaOigag4aif2MNyvZN0NcZ11/tt4eif8ESMc+Kcua52VnUNY0lN+xdaK+/p/WJTG4G1t0u2zn5ExPq38o6tLJqX9Y1zf2Y7bLHrC4njAdWQO0IuI5hD3V9+Jg/ZsVxQk03hetT4esYlO83u+M2a5nEX/J9/Xr/9vXLF/Yu0EnTu1ZkvjWtp1ns5/si3252RuQ1Z31W4oe6CcjeT6hlW746l7+OWY9twubHesLX604hquvrfad98aJoOoX6XVnc5busOyvsvx6y/e/79HzA+pTZ6L7YWOEHK7xshf/xkO2PgfDrvFCxf5Huds1G4/H2FvvNuex1zDkcq4ds+9xdOkxft1lh3jrk6qu3sgGtE2w7lbuOGdXEKeiVJ58VyRQaYUf/LuqJhvgpwGOt6T8LaLRJ+f3+9f59myHwLnVOBOAbZlZTXXLAIe05E2CseaarfG+BwU/Hu7tswgTZyGihw+dOxpXMO09uCFnkW3cWselEXMe4Y5U1d42ON+lYZc0c/hJDaKDtdMFHvzWnxy4KfTeHMIzR8+xUZOh9z6/RE6c6PfSxP8IJ7HB/xYlzckyyx9Bse8PfoSltqeHoN8eEfGDaQXSzQiGDSndp5d4tM/oLNOW92c11voX5Z4wdbYGLFRfF5xf21JZR6ovi8+ZU7GIjDg/FPntzfPw81JETK0y5fVfuYjMG2EOo/4LGSLvC06zvpTkAf2CWRp++oGMcfmmojPvuwXsxPgE3kg8KXDJCDDPJHp1sOBl50diiMv22jhwmzbDpXPqKJhXlfbpvn55oFxFxRePKbJuXDbo/lvlE44iIKxo3hFf7rGJx1kFz3CZHjvxqOylObsxQyYsa4ZiukGWID/e2J5l9X3Lw27CB5HWtH9hQc5nxn/P9Nt/f/xY/v36M3a20oSPtLzPZZBb9pTeAzrPWCGJkKE019JSsYbbY9wQteeaexGWduCsZzeog+m6fGNDIu4riz+gi/JsXrtlHDF0QkcPdA1MtbwPum07ak5hcD+aoMa01gvpO2x1vqOuyp6vDh100ePQClzz1nPVD0bOoxSrPPWVbuu/DhC84tKG4P9wQMelUmjHLZ5vULDXdIxi4xjRrzeGc7j4zPBfxAOzgXAc+fq3ea2iGEFc+YVqAX/yCJOUe69ipyaOMCnasjTFpcJfaBIPMpHxa/Z2KXmIM8Ou82A8nFIfPPnVScUTjiMRi8H6X+25gz1jHZZjDSDSOWcNNNuYbM7AEjRnCWX32GuF7agM0GD2v89gF/jmUzRXq4SVy+a/Rk/nxdr/rmfAD9U2hwha62IBH/94MjvqBmzJGKD/0gkOgmkEJWYqr9DH7kNfj3rspVOU9pwuNMcDkX49T3xW5WLmBh97tExz9bqkpJnhNPLyUYLi9R8tchv2Kcmhs6lf8zMhgDVHxtx40b2CazjaRM2Efb+Z2mzcPpDtOaH7Q2JM0dqb9BJMHo/mDZvIC+uNN4wXQh8wbEUMfb+LQNGHANtZ0YbxRdlfeha25lfI07dk18bIW7Zp5rTY90EMzYibxQk++gBhQPWYl0fPq/XP415cY2MoYnleON6+NKF5gXBtFvL5pbYbVpfa1Yp7IyPHdnW/dxP6OFXUd3Y2AgOu0DmQgkNZ/FExgKXz8gl7jMf32al+XeV/8Ja6zWeRkp+J9Hwa/ZqzG+nK/e6wZTvseMsOtmVfmNMa3xefBSqFPXhjY9HLcxqoN89yGqiZ4z1jv/ZjmPfWCrekKXcOAbmvAWBu6XQFXMuOc6zW6bs75XteqFFbOFzaGn/bVYwxoMPXw7jb65J/bYHy1kxvM+T0v9Vdi0Dh/RWZ4B/GCc7cCQ5yHnjBGSLXwIoTuC8Rmbv5NMcOKB26G6VNMDjkmF5SGqrtHxn1X/3LKvmONkRrGecakWEx1/CBjqHfgBGOm0ubKSbdR9jRpor+5aJKWvMiUr1mZ3/XEnYn+0+OjlRKvanaFfRtwK/vMk+ZqEjXcaI7zBtMT56lubtb8sPLH4bPJsQmPdynrqpoRhgyMEMACztgwrHpgsUb1ctZmUClx7L+ZBjIcIwkevTgyQi4DYmp8NuLkt/D1Lml30Bh28+MZ0gZT1r2DNjbFK3oVY/LtxCpyCl7FkDKza8T1pjfPJmINLX0lk/xj/caaxD8UkG3ScAeCTGH2IzwTOGddRexgH3fVZ4zbt70f2BVs//7U8V1Hy4hQbmt7LC0v3XxpF7z2YAOeeucm611XbLoRm8Et665u5ib1AZVe2hBTsXeSyEXqd9492b1a+y/FZipjV+wVavPxLuVO8F3Nj3fpqNn9oBEvhhdWRD93YTWo+tXAworoZS2sBpX+bWA1Q5SyVjP9SttzLXgqzw+PUuh2w6ejpZtTq4/lAB1GT1/SRX82d1VnL6crftbJ2J5l9H0M+L7RDq1/F33cKNbm+TGm5HuzLTyvv1/yrc5SnuBrNe3NPUh+hF3nohcYA72alfKHnn7CqF5UHS+8B99t0v7uuCGMbd5jzOhPyIubwcjLG2PGcHpe3BRmlt4ocwaS9XqM4eTsjTGFkboXt4abwTdgEGi/L3tj8M5D11kmDHcRJ13uYmFoVuW+zGDueJfEPMaWc+lun9MVTDJq92nPjCuwwylyofLhjV+BcuYWL4byY9WHRgLF7ePjlUYcfuBAJvrkBZiE3ITKUzV0Fyou2m/CT9/tQnlgsd5nz+fvdpnFuseBadw90wGZN6SOU16NVz7K+3uVHw/bdLxnnEpNNSFsEOYR7gTOffjPXJUEevsXJXW1/Y+8+o98/5CVuT2oEH8j7+UvW6OEJoIlyhMYNrnqWvt4R/eOMGvCQiq0bWAdddXvyF1WhVaiVdVVTRs6UTFqGetIxTGGsIZMYAfj9MJ+M7wuq07L+nWj3B7h9msTZRxuAD2lrrrhd2D7xKAdE28r6P0qk3fcDlvL3HjLNM+t5+GNrn/W9tapm1ovvydn0g05V9iyOm2j6pDiwUR2Xy0va334Eh5Oijq9fIedj36tO4AuuP3nwl3B4/cCX+Oun4m3/AxsPv5Iz2YdHBdiJZ4wMNmrkhecjL7nxH3C/SaxtgyPNak/WNlvECNgOdqcMrvLv002qCt9TZOG46j9RjFjqaPNGoinDhjFiakyTIq0+g9174KaPvmkSYpQGXsQp+/UMwH9MHTWecyS+oF32jnXmCa1yLDcvC+0h61pyn49l72GOSN6PceQsb1drwn7YoKLdIWuYUBR5vf5/iV/SHLssGXHDkgMc14P5MX3mcNKkeea091r0b8ND5vTleXMWtjmDC3IYqawFmFcM4YmjNAG1sSRa8CEXvxZV2iiAdEBhRMZjRS4YHhhxvX6FI+K7cVeObaGnHB3VK+tky+QGmn4UDCt10hWQG3YINfVfu+lYM1fL3Ciga2RJ+ms7ZDG0j5F63b47jkjkWh0S0xVfZc+5rvv6/4UjLNe//GpSu/zr9merdN7eqpKrrJL1eSbL2xV52enqivK+3XfTRFnZacnp6o65Ju6d+Fy1nV+dKqy6viZo8g+NkKJ23XYrMnf7tK2h2nu7o0rRU9fskF/cItQVCF3sxB8v4FP8V95/cDZGh8pcMEHac957T8DtU9td1IsY39G7HUvrytkF6yuYcI10sjB82N7beSdIjtsUtypGNvHIwX+nFYGdF6n5gb3kxf1YaJ9tiS/xob2lHtPv283PDVeNa7qQMk/rw5jyq9SmeibDOw2G9Eoo6Z3ssY20X5z5Wy1EIk8WfxTcA37X4rivDPHyG/Nxo+OzfHy1dsYy/usKnZfnTm9q9Z/5DJ1dqNGs9832LXqqgwfu4Za2p5CjZPaDVX2S1Y71z/3KYVPXjO6y1PGje7iF+snmGNNORe7miV+YIhpBycwNGQFdYxf8SXBrkX+I5f5IUqbDHWZv1/gc3mFfZtKf2Yf7PuersGxunSWXb3aqsFVF0ebsx7q1za4IsLaaJW9Pd0mTM+scNUHT13SZRwOzQrFvV57WNWz9HD4nFbZcfAG7fCF+pPcsy3dIcqw5lSWt1OUbROMszPsGRFjH2ELCbKz7GAF2PtsiDtodJbiP3JZF/Yuvc8qs0WxbK+xhirDx66otmeaAp67UHFZfPveN2NwH3iqiUKggzs/8KyPb2H99t27vLlftXmekTnB0R2fCIR6OeM/R2edlvdZ3dfFhrptGV4HG7GBOtb7LN02x/e3zcPmJ2AXw49e5td2l3GfY3tPXKaMRuCgPvrQOJXKme2/f/7m4/rj39+9Wr/4/cPHt7+tP77966s361f//eIvz9/88uqk/Wta5g0tOk0+Bwpew6Lffn6+fvv2J44N7aNX0/rxHVvrx3fX0vr+1Yu3f3v1/u/rF29fsr58UIhlyT9ub/L9Nvt28+O/mjPNTC7KjzfyB/XD6ub25i7Pdtvq5sdPHf3YFI+PdgfkttgczY//aB/7W7YxRy/8+Mk+/f9mN7efZrfJ8oe5mv/jH7efusLmD+YXnYzzb0xBcXP7SaCCIigovILy5vaTRAVlUFB6BdXN7SeFCqqgoPIK6pvbT/pWyx8SLb2COiiovYLJze2n5FYvfpgnXrkkKJd45eY3t5/mt4n6IZFLr+A8KDj3Ci4iChdBuYVXbnlz+2mBPs0yKLj0Cq5ubj8tkaWroODKr/7GG1aw/kPPEcR1jO9ArxPAe3z3EY1TCOx5oQcJ34VE4xgCep8IvUj4biQa5xAKfS0RepLwXUk0HiL0bTL7QcyVXzh0J+H7k2i8RCTQ7NClhO9TonEVMYeFQ78SvmOJZfydQ98SvnOJVfydQ/8SvoPJxmcEdGoZepj0PUwaD1vCwqGHSdJBGQ+Dvi1BH+V7mFTRd5ahh0nfw2TjMxI2DBl6mPQ9TDY+I2HDkKGHSd/DZOMzEnfLoYdJ38Nk4zMSds0y9DDpe5hsfEZqWDj0MOl7mGx8RsKGIUMPk76HqcZnJGwYKvQw5XuYanxGQvdUoYcp38OUGQOhe6rQwxQZBhufkdA9FRgJfQ9Tjc+o2a1c/JAsSOHQw5TvYarxGSVuVfLDSq/8wqGHKd/DVOMzSjaalwtSOPQw5XuYanxG4cE/9DDle5haxt859DDle5haxd859DDle5ieRd9Zhx6mfQ/Tjc8o2DB06GHa9zAto++sQw/TvodpFX1nHXqYJpMtHX9nMN/yPUwbD4PtWYcepn0P0/P4O4cepn0P04u42aGHad/DtPEw2JPo0MO072F6FTc79DDte1gyi1ZVEnpY4ntYIqLvnIQelvgelhgPgx1gEnpY4ntYoqLvnIQelvgeluj4O4celpApfRJ/ZzCt9z0sMR4G++0k9LDE97BkEX/n0MMS38OSZdzs0MMS38MS42FwxEhCD0t8D5vPombPQw+b+x42j3vYPPSwue9h88ZnNJwNzUMPm/seNo972Dz0sLnvYfO4h81DD5v7HjaPe9g89LA5WTk2PqPhJG4OFo++h83jHjYPPWzue9h8GX/n0MPmvofNV/F3Dj1s7nvYovEZDeeei9DDFr6HLUT0nRehhy18D1vIqNmL0MMWvoctGp/RcE6yCD1s4XvYIj4PW4QetvA9bBGfhy1CD1v4HraIz8MWoYctSHyi8RkN5yQLEKPwPWwRn4ctQg9b+B62iHvYIvSwhe9hS+NhcFqxDD1s6XvYMu5hy9DDlr6HLeMetgw9bOl72NJ42PxWqx9WC38tuQw9bOl72NJEvXBQKPSwpe9hyyT+zqGHLX0PW8Y9bBl62NL3sKXxMDjELkMPW5IwWNzDliAS5nvYMj7TX4YetvQ9bGU8bIWCjKvQw1a+h60an0lmsHDoYSvfw1ZxD1uFHrbyPWwV97BV6GEr38NWjc8kcKxahR628j1sFfewVehhK9/DVvNoVa1CD1v5HrZaxKsq9LCV72GrZbyqQg9bkWBrvA9bgXgrDbjOonVl/+YXd37XljdehmOfMxB2nZG46yy+pLR/o+VJ6HUWX1Xav9HyJPo609F6s3+j5UkAdpZEq87+jZYnMdhZvFuzf6PlSRh2tuipPxCInZFI7My4Hpxv2L/R8iQYO4uvM+3faHnifyIezBAo5h8E/UW8/mDYn/ifCeVH6g9F/mno30TzEzh3ESj4T6P/Ij5lEyj+TwGAiM/aBEIAlAGYsH7s+wH/oxjARPZj3w/4HyUBIr4EFYgFUBhg4vsR/0c4gPAAYUL8CYYggAgIggSEjM/jBIACglABIeMDrQBcQBAwIEysP8EcBqABQdiAkD3+B+iAIHhAyPi6VABAIAghECbon8AJpQCMQBBIIEzcP1kCuikAJRAEEwgT+U8wcQSgQBBSIEzwf46hI2AFgsACYeL/cwFhFsAFgvACYRDAPIIegfsRZCAMBZjj7h9AA0GogVDxgIgA3EAQcCBUPK4rADoQhB0IgwPmuPsF9EAQfCB6+IEAAEEQgiAMFJjj7gMwBEEggjBcINL9AowgCEcQBg1Eul9AEgRBCcLQgTnuPgBMEIQmCAMI5gtMr4H/EaAgDCOYw1wBAZCCIExBGEwwX+HywP8IVhCGFCxmuDzC78T/DCxY4PYL2IIgcEEYXrCQWD/wP8IXhEEGi0j2APA/ghiEoQYLjcsD/yOUQRhwsMD+DziDIKBBGHawwP4HUIMgrEEkPcMvoA2C4AZhCMICDz8AOAhCHISBCIslTsAA/keggzAcYbG61ckPc03LA/8j3EEYlLDE4w8gD4KgB2FowlLA+gfwQRD6IAxQWOLxB/AHQQCEMExhiccfgCAEYRDCYIVlJAEG+B/BEMKQhWUkBwb4HyERwsCF5RzqByxCEBghDF9Y4v4T4AhBeIQwiGEJA1sCEAlBkISY90z/AJQQhEoIAxpgUpoAWEIQLiEMalji7huQCUHQhDC0YYXdH8AJQeiEMMBhhdO+AJ8QBFCIeTTTTQBCIQiiEIY6rHDrAZBCEEohDHhY4dYDOIUgoEIY9rDCsyeAKgRhFcLghxVuPYBWCIIrhCEQq0gSGfA+QiyEgRAr3HsDZiEItBCGQ6xw6wHYQhBuIRaxzEoBuIUg4EIYFhGZOwF0IQi7EIue0AugF4LgC7GMU34BAIYgBEMs4xhWAIYhCMQQy565H8AYgnAMsexZewCSIQjKEMuetQeAGYLQDGEARWTuCXiGIEBDLOOZJQIgDUGYhjCYYoXXroBqCII1xLIn9ALAhiBkQxhYIWa49wVwQxC6IQywiEy+Ad8QBHCIVc/kDyAOQRiHsJADNwBAOQTBHMKQi8gHBKBDENIhVj2xZ8A6BIEdYtUTewa4QxDeIQzCEDM8/AHkIQjzEAZjiBkewAD2EIR7CIMyItE7QD4EQR/C0IzI8gnAD0Hoh5zF01AkoB+S0A85i3eBEtAPSeiHNDQDL98koB+S0A85i3eBEtAPSeiHnMW7QAnohyT0QxqagZePEtAPSeiHnMW7QAnohyT0Q87i+XUS0A9J6Ic0NEPMcJIxwB+S4A/Zgz8kwB+S4A9pcAZev0iAPyTBH7Ld9IATnQH/kIR/SMMz8AJGAv4hCf+Qdu/DDCdLAwAiCQCRdv/DDE4CJSAgkhAQKeIhGAkIiCQERNptEDM4D5MAgUiCQKTdCjGDExkJGIgkDETa7RAzvDcAQBBJIIi0WyLw3hcJKIikuyLstgi8/0WijRF0Z4TdGoH3wEi0OSLYHWE34OCWCDdIEEe0WyQEbglokwTdJWHIBprMS7RLgm6TMFxD4N00Eu2UoFslDNgQeEeNRLsl6HYJgzbghjSJ9kvQDROGbIjI1hi0Z4JumpDWCfH2GLRvgrAQqawT4mYAYIgkMEQauIG/AGAhkrAQadiGiGyUATBEEhgild0HhlsRoCGS0BBp6IaIbJgBOEQSHCIN3hASTygAD5GEh0jDN4TEIzoAIpIAEWkAh2g2zyABwA8JEZGGcAi8gUYCJCIJEpEGcQi8iUYCJiIJE5GGceCYrARMRBImIg3jEHgjjgRQRBIoIrV1RNwQABWRhIpIQzmEimz5Ao5IsIjs2W4hARaRBItIgzmEwi0BcBFJuIg0nEMo3BIAGJEEjEgDOgTe3CMBGZGEjEht9yji8QSgEUnQiDSoQ+BtJxKwEUnYiDSsQyg8NwNwRBI4Ig3sEHg3hQR0RBI6Ig3tEHhrggR4RBI8IhPriNiTAR+RhI9IwzuEnsHGCACJJIBEJnaHrLjVsx/EgvRHgJBIQkikIR6iSSRHtQA8kSASaZCH0LhPBoxEEkYiDfMQWt+q5Q9yviACgCcSSCITu2M2wa8APJFQEmmoh9C4TwaYRBJMIg32EDhvWAJOIgknkYZ7CI3n2ACUSAJK5NzuoF3BbwBIiSSkRBryIRLcpwJUIgkqkYZ9CJzZKgEskQSWyLndrx3ZTov20xJPNPRD4GQ/CXCJJLhEGvwhcLabBLxEEl4iDQARON1KAmIiCTGRhoCIZA77A4BMJEEm0iAQgROOJGAmkjATaRiISHCfCKCJJNBEGggicM6RBNREEmoiDQUROOlIAmwiCTaRBoOIOaS+EnATSbiJNBxE4LQjCcCJJOBELuzpAZHN3Wh3N/FEw0IETvyRAJ5IAk+kgSFijuepgJ5IQk+koSECp85IgE8kwSfS4BAxx54I+Ikk/EQaHiLm2BMBQJEEoEgDRMQceyIgKJIQFGmIiMARfAkQiiQIRRokEplqA4QiCUKRBomIBe5TAUORhKFIw0TEAnsygCiSQBRpoIhYYE8GFEUSiiItRVlEjioAjkgoilzZIy0ixxUARyQYRRosInASjgQcRRKOIg0XETiLRgKQIglIkQaMiAX2ZEBSJCEpcmUdEXsyQCmSoBRp0IhYYk8GLEUSliItS1liTwQsRRKWIi1Lwak0ErAUSViKtJtIUCasBChFEpQiDRoROBVHApYiCUtRho2IJQwdKABTFIEpysARnAurAExRBKYoA0fEEk5zFaApitAUZehIzABwCAahKWqm43NMBXCKIjhFzXoWKwrwFEV4ippZL4ycPgIOxCBARc2sF8JguAJERRGioixRwRlJChAVRYiKmq3iqx0FkIoiSEUJ64f4KBPAVBRhKsoylYgfAaaiCFNR9jCpFexMFIAqikAVZaEKzktSAKooAlWUhSo4s0gBqKIIVFH2YCmcWqQAVVGEqihLVXBukQJURRGqoixVidUC8ERCVZSlKjg7SQGqoghVUZaqrGD8RQGqoghVUZaq4PwkBaiKIlRFWaqCE5QUoCqKUBXVHjqF2wKgKopQFWUgiZxhVwZURRGqotrDp7ArA7CiCFhRFqxEGhMAK4qAFWXBCg6jKQBWFAErKg5WFAArioAVZY+iwkkSCoAVRcCKssdRYUitAFhR9EQqC1ZwEE2hQ6noqVRK9HxCdDAVPZnKohUcRFPocKrgdCrVMyrAA6qIHyrrh5C0K3RIFT2lyqIVHHlQ6KAqelKVISUSk3KFDquip1UZUiJnkVoAnkhPrFLWExdYAPBEemqVsp4I090VOriKoBVlUImc4RkSYCuKsBVlUIkUuDcAbEURtqIMKpGYdCvAVhRhK8qgEolJtwJsRRG2ogwrkZh0KwBXFIErStsj+fDQCuCKInBFWbgSmWYCuKIIXFG6b5YI4IoicEXpnpC2AnBFEbiiDCuRGLcrAFcUgSvKsBKJcbsCcEURuKIS64l4cAdwRRG4oixcifTKAK4oAldUYj0Rzw4AXFEErqjEeiLMYFUArigCV5RhJVLi1gjgiiJwRbVwBfsBgCuKwBVlWInEyF0BuKIIXFEWrmBirgBcUQSuKMNKJGb2CsAVReCKMqxE4oMuFYArisAVZViJxIddKgBXFIEryrASiZm9AnBFEbiiDCuREu4DUQCuKAJXlGElUi7gJAvAFUXgippbT8RtAcAVReCKsnAlEr0AcEURuKLm1hPxVBvAFUXgijKsJFoLwBMJXFHzVd9HBJ5I4IqycCViAYArisAV1cIVPEcCcEURuKIMK5E4cUEBuKIIXFGGlUiceKAAXFEErigLV3A2oAJwRRG4oixcwdmACsAVReCKMqxE4tQHBeCKInBFLezBuZFzTdHBpsQTDSuROPVBAbiiCFxRFq5EJhgArigCV5SFKzgcqwBcUQSuKMNKcFKoAmxFEbailrKnLQG2oghbUcu+BQtgK4qwFWVQicTpIwqwFUXYijKsROLzQxWAK4rAFbXsmyYCuKIIXFFL64h4igTgiiJwRS2tI+JeHcAVReCKMqxE4vwTBeCKInBFGVYi8XGRCsAVReCKsnAl4gcArigCV5SFKzh5QwG4oghcUS1cwW0JwBVF4Ipa9eTgKABXFIEryrASic+fVACuKAJXlGElEh/mqABcUQSuKMNK8D5TBdiKImxFrexx4rhLBXRFEbqiDCyR+IxDBeiKInRFz6wj4kOMAV3RhK5oQ0skzuHRAK9ogle0oSUS5/BogFc0wSva4BKJT+HTgK9owle0wSVSw9asAV/RhK9og0skzuHRgK9owle0wSUygZkTGvAVTfiKNrhEJnDHkgZ8RRO+og0ukQlcr2jAVzThK9rgEnxigQZ4RRO8og0tkTgHSAO8ogle0aJnkqgBXtEEr2h7ZBcCnRrAFU3gihYqHgXTAK5oAle00PEomAZwRRO4og0riUTBNIArmsAVbVhJJAqmAVzRBK5oYd0Q9yYArmgCV7Swboh7EwBXNIErWtg7FnBvAuCKJnBFS+uHuDcBcEUTuKJbuALDqRrAFU3gijasRCZwVNEArmgCV7SFKziRSwO4oglc0YaV4N1jGrAVTdiKtpd7zOHArAFb0YStaINK8O4xDdCKJmhFG1aC44gasBVN2Iq2bAUnomnAVjRhK9qyFZyIpgFb0YStaHvdR2REAGxFE7ai7ZUfkREBsBVN2Iq2135gsqEBW9GErWh79UdkSAFsRRO2og0qiQwpAK1ogla0imeBaUBWNCErWsUPsdEArGgCVrQFKziZUAOwoglY0XbPCk780ACsaAJWtOEk+DIxgFU0vRBEz3q6MnQnCL0UxG5ZwVN8je4FoReD2C0reK2o0d0g9HIQu2UFE0KN7gcJLgjpCWZreEcI8ULdE8zW6J4QelFIi1VwO0J3hdDLQixWwWtFje4LoReGtFgFrhU1ujOEXhpisQo+z06je0MIVtFJT362BlhFE6yiLVbBkFMDrKIJVtGJ7JneAayiCVbRFqvgxF4NsIomWEUnffNDgFU0wSo66ZsfAqyiCVbRhpJInFqsAVbRBKvods8Kbs4Aq2iCVXRiB2Y8OwNYRROsoi1WwbnJGmAVTbCKtlgl4kgAq2iCVbTFKgs8OwNYRROsoi1WwcnJGmAVTbCKtlgFJydrgFU0wSraYhV8voQGWEUTrKINJcHjEoAqmkAVPe/BexpAFU2girZQBSdHawBVNIEq2kIVnBytAVTRBKpoC1UisysAVTSBKtpCFbzZQgOooglU0YaRRGZHgKlowlT0om+ZApiKJkxFL3rongZMRROmohfWDXGPCpiKJkxFG0QicYK5BkxFE6aiLVPBCeYaMBVNmIpeRI8Z1oCoaEJUtCUqOD9dA6KiCVHRBpBIfNCjBkRFE6KiDSCROD9dA6KiCVHRhpDIJV6nAKSiCVLRFqngBHMNkIomSEUvVZzJaIBUNEEq2iKVJe5NAFLRBKloi1TwcZEaIBVNkIo2hCT6CsAPCVLRFqngfEwNkIomSEVbpIIzxDVAKpogFb3socwaIBVNkIq2SGWJGzNAKpogFb2ynogbM0AqmiAVveqBexogFU2QijaEROIUcw2QiiZIRRtCIvHBlRogFU2Qirb7VfA5DRogFU2QirZIBaeYa4BUNEEq2iASiVPMNWAqmjAVbZkKTjHXgKlowlT0qocya8BUNGEqiWUqOEc9AUwlIUwlmfXAvQQwlYQwlcRuWcG7EBPAVBLCVBLLVHCSewKYSkKYSmKZCj6DMwFMJSFMJbFMBSe5J4CpJISpJJap4IElAUwlIUwlsUwFZ8kngKkkhKkkds8K3lyeAKaSEKaSGEYicZp9AqBKQqBKYqEKnqgnAKokBKokInr0TQKQSkKQSiLsLTywP0oAVEkIVEmEPYgOdicJgCoJgSpJew8K7E4SAFUSAlUSexEKzpJPAFRJCFRJRE+6QwKgSkKgSmIYicJnsSUAqiQEqiSiJys2AVAlIVAlEfY0OtwbAKiSEKiSSHseIu4NAFRJCFRJ2utQIhe4Ak8kUCWx96HMcGMGUCUhUCWR1hNxWwRQJSFQJbE3ouDD1BJAVRJCVRJ7JQpOMU8AVUkIVUkMJVE4xTwBWKX73T9ub/L916yss+3r/Tb7dvPjp0836eeq2B3rbHss0zov9je3/7pZ5/bPDbcwOm9+/NdNw6p//Ne/b28aRPHjv/7979tOqf11p878rdGffq7qMt3UVVZVebGv6qLMXOmL+Vl4c3A/S+Zmk1XVui6+ZL6lyhHWZCrxhQWymjj3SVZzYIwprexb3940edb2h1X7pybaPVJfVpZF6b3AyrFfTRK3Kbbe9xVO5Qk5VuRdI3C/zzaNUwTmKuWYu7hcdmB74tg+v0h+cWj+W3nSlSO+OVdppPzKbySO6zUce6ywrPZtW7nex3WFOv/qf8DF0hGzYospyrBtCelUth4rqv5+yHxxru9ozRV3THd5VR0zzw9XzsdqDrBmydpu88Yl0t0hLdPHrM5Kv0KFdg1k9iW7XfFHvq+yzbHMyux/jllV+z6nF06FzJk9xuHwOa2yY7nzRbl1O2+7o2bWyZRZFsc6Kw/pfWZ+8mTPXPfjenMgsjiQtxdunyqYLe64zbP9xrdPC7d5JG1XPOt+0O0g1aQM2x+W3bCl2w/VwAj7w6p9JuF2Mcf6YbbZ5c3vHJuWS7ezYraPsyjUQem5W8PMsbEReSiLr/nWbySO4zHr81g/ZPs636S13+03h3g4vQpzUHGl0d6gOZTDkcjsDahEv/1Kp3dXXfNotkNwZRdl/r9mMtQMS/dluq/DAVC7nf4Fktu+IlTgvAS3D3IVbLM6zXe+Vy3dDzPrPowQ3Q/M/tNVE9rtjoYTPjnuk5vkCadBqK7ZdzMwNVWTr2Xl9FJKdB9I8j9/O9f13HG+dGuSZ+jndPNl85Du99nOcXb4vZ0WmfAaZFT4vqir4+FQNCuEUJHzGgmvv4wqQl3e0p0BC16XF1VQZtWh2Fd+V7Nyx3Vml+9o2BX3xdHr+KU7GDVZ6ZMkhl/a+RIJb6j8nN0VZdattNKv2dafTbuj75zXyYYiH4rii79mccRqZt/9Od9v8/09nfBLt2/SzAVcK+sxq6r0ntS1WzOCNyafxNUPhf/9Vo7vN4docKRt0t3muEvr7DH9RqxbOjNgwewRNulu17iO73/uzHzF8+hNevTbhXI/VTePWnUdaze5bP9tO9x59+/S/rtoyy3bcqt20tXcp21/EO0TzTVB9gfm9GHzkO522Z7U78ydiIjTpI/ngyeRuJtYuJXN64hOEoP5jbtCaY5PYUkLpphOQ2MaZESkVZWVpqvN7/f5/j7d3fv9gjuZnvMaHZb8JfvuS5auZKZnGsk56bqUK4g3Q7GCqmxTkrV1ol1hzIZHeirltrlubdH6tO7mI+0KI2mnVt06JWmby7z9/bz9/bxtNot2yrFo5XaLmGX7+24ts2r/v1vAiC42J0TXukSrSkjZ/dC1QKW7H7pSS9H90P1p2RVftQ24uZum/UF3P7RvKZmL+OZLfs3K/C731ydNGpczQ+KNeG2AZx1EjtzuTDJnzq2wdLMpjmRt5wYY5l0/s2L6oSc2GOfdOOOc2TOEEpsP4M+k3K6R2Vt4YsHsrDmhyenGuPVtpGZb8F2l2y82vGuEQDLBFu6SQ3YjVXNMUxu4ZY7XJ+EoLNecr+R8gLH2diJJ5NCpKc0MimyaSHp53JCVuXJXLl3Ium3Dp8BH11t1YY9ucG/b8bz9dN3yat7+ftG2/EUrd9HK7XqNZTf4t79fdR1Nt8QUs66fEl3/IrseR546o26m0HWaoptkiK4bbK7oa3/oeq7VqVeadT+cOqx59wP3yxZfcn9S6o5iuuvuNNuhGnmbYn+Xe6OuG0MRzCWblQUbpruoUaf18KnKme9eZmnTUP3hcukuG7paVUtmn2JE3mX15oHEbGdul8rsSY9VXTxa1vGtWT3500F3ti+443ooMuyhHbncSUxEbLDgcb8tsz8NRSOPcLmP0kz/CkWjubF0xxaV8NrBNrtLj7t6nW8tt1tvdmlOAi/e11A8m7fZLvOD10vttqy205DdlEgzP7OVm+78mLvbzqTgvnkj6fN3u84PwcrcxavMKJON67li3FFESJ6XbvNqU3zNyu+bdPNAyJvLxpjdhy8ORXekO40/rTKZa9+T+LCBOh30gtcvbYvHNPcnEC7Bk4tuAnGyshv/dBcp1UxabVWVmSHsKHg3d6tOd+PegvlVztK/+j1sk/jnfO3TsM/0MCP3a7rLtzjk6AY0RTe5EEtmqz0Uh7UdFNuMg3UIw12Yz/zUjdh/fqnXXdilEXyX5js/Eibd/ovZiBvJX7Lv6+xbExlFQr3oEFto6MxOG1nwQlYnOcHw4rZiZiM+FIcv2fdDmvvO5PYvcsH/aKgbSFxyueB9q+yRdHjS849utqqZn8yIW7frUOIcLrtgxpKyffp5l7m5GPvtocj3JPDg4guuoUYyWfEh4XN38BxldoNAdrtsV5fpvko3YX25I5Tsgnya2dNaHXW2yx6zuvTjQ3M3PrTgDVrZvizoqOz6k1h0HTavo7Pyml/BuY47qdTM4KoVWRSf0cTM7ZUVMwOgFQikrdy1CTMg0UqrUduUXgoSc16eHYrNgzcF8xJ3mH4SdISOJat2OF61lSu68JPoRmPRhX+FOgWtmI2gUbzeZtWmzA80rOAyk26VueoUdPkGooOEonM+0YXOBXO4NUb4rc5dIDHdpJ20o9HJS5hgSjuYuE2Yb9Nc5+4k3PAGluzbIS+zap2TlD13LGbm7rSiyDrVnQXK5BT36dbAzJSlVjaxUriDOzMdy1bCui7Wm+LxQFcpwuuzRgpEq1/hJlLyvuNZYL7P6zwlFrqjFW+QPgsss7syqx7CHE03jYxJ5O7Sx3z3fW1KeQO1Gzhj9vZ3+a7OynYxmm+NeWgl6jYXZibmfZOB2cRPIjMo6fqn4vVNncwWwIbBKeFOOyUzBwVKDUNUwp0nS8Vr5vd+xHTpemUHPGTXX2rmQvU+qyNpus7bdz0uc7Xqy/SSRb2gkuuvzCmPLxoO28odtnkrvUaqm/LkS/SAFHMqdZ/Vtu4PZXaXf/O7eHfpwGyo91ldZeXXrKzybXYoiwPJ/nM7FOaKLhRZZtVxV/+RwzQb4aaVSmavZXQEotwqEswFz31m4zufv5OcFE+wG59irn7u86/ZHvSAblIRt9KbfLN1Q6jXNt7XxuPQmKLcPNBmD8RIBY936booPvt5BjNXJLMbJCLrgy9SuCJ5AwERWWY2thSQROUOWAmzv3qo60Ox33mLHem2KKX4gur8MSMpR82liM7CiTfaE6S+dIc45sKmC976PY87N1ry+rJ25PXnWO7KIzntquB5SHwoX7mfnZnKnO9NLn1ef8cbYtzee9bxNeY0Id9vdsdt1hr8kO/rfF/k240ND9Mk77kbw2OGBPOGCe9TP1rixlw0Ewi38b91dfz8z4ay244iSOX3kjzGCPYCgOH6z3l1rotbubFsWu24ApNftRKrOq0BGHJzqpl+WjVr73zvTbSW7hwjYb5qRWYUzkQrmXGNoSs76RFk5uBkxfSFit30CX2it7yOepdW7rwnxJOu+zEjILvinizw3KirYk7IjJT1Aw3EuStayaRjRlQgyZ17KsGrU5Sf6kacVrzZsRXTbN2rs3sStHNnhh2UT2Y8X4lBMLeXTma8nvQx/bamGZ9LDxrweqMwNbM5EcoZqzvk3+UkaGZI6zH91oQVc7ozwa1WZqLT42b7mNXpNq1Tf4nmVoY6hT6Z9oUps3N3vaaZYu48mxwJXUiOmVRoJ2L/c8zLrPk9CYe5dJ85X2kEhhGImdvdMnuMx7s0PeSmZ0NhYrdNCOZWyEZkfD3njlV6xq4ImCcr3Y1Eesbrklxh4cjnzCaYQbtGXpDRKr20YyYSaSQV+zr7RkS53RxzqvR4l4Y8QbrjumZ2bCdJzW+D7+Wm2DLD0o93abDiD+W6rsyv2H2Rfk3zXQNm7sweTSDZXf4yNxU+3qVt8w03jizckHGXIStWbMeO9QsLt1vQbUBeilOaEvubhGOSh4m7NDQ1P20p7IJYXT6aPm0y7BLgNTO7vVNvg8/g47nVrE9Zb8yhoxXeTmVD4W5NdznLku/2dn9vTdYtbjIFc679eJcaIOsvm92uRnNnBp2k0K3d4AszrHWSBgGhu0VPMVcBj/l2u8v+SP2jENw5kOD2hXlV5fv7tWnFsQWaFywYJTYexvecppvRj5KNwnde6lbn5q1Hjvsg3prVdyjXM8fIxItAN1NKMBfWj99bkt/NKTyB7hSM+dY0Muiu9oXs2nQHLvUp/s5cV+/zzZcw+Ojm6zPH231hRu59fSiLu3x3Si/84yHbH/feMs/vTtw1FbNP3xdk17h0xyDNRO9FY5QMl7Su/zPTfYo92r4l3EQqycyfOotCMyF3o1oy41XxWSLd4Kdc2pswzxABUQB3nc6UUWbbvGyYjB8vcdfqPEnF5zYY7y8W3Y6ROZqeRZFFnRsFZa53GllBQrAbgJGnmQWzEsv7dU6y0lyfXzDfsbxP9+3+aP+DuTOiLhNeaa5x+X2+DxMvpTuF08wtMFYYCGC5UyXNPIaB8ATpvqZmTlHxORrugCaZfXkjqbInabSBTL81urCDOYPxRIZzGOWuiBNmoAlsnHc5jGQOhYfUp2PS3dOpTptXRNcSmFslDg/FPtsfHz+TzBU3OVx1u0UUM6v/kG/qoz9nky5G0cyJbohbpTtf1swEk3YM9Sc37qDMDAMfyuLbd0CplbvbKRG8Ps0Io5Wq3Lz5hJmdcjhWD9nWO6wBHqnjRpflkvfpyizdNoCuFWgpOHl5N6DOdOYoRZTubn7FzJjqpIW75N1KZp7q1A2l62OZ+y3CHbiYC/12WeBPOtwqZgasossL6e6KVMwuuJUGFvKusG4XrmbuCu1g0tYszv1QuJsjoJgN5CSv2hRkl7gLIeTpfCLN65y6jn0dHIUjlLfLiOsvVlywmHTDBbqLiiTMozrKrD6W+7rwYomOPFtMnlYsqjuVRp623XWhlW7XdMJMjgTczU2fEN0+SN1tU9TMHC0zrpK9t+4H73ZTK25LNfJgf+yd8sJ77Sp9zKq8JpNMt82fvmi3jtcJ78Wb40D8wLob9GFOI0ArcOdM3V551dWK6naIKt396ZTr2QXiVJepq7twlu42bSfdBvaEGa0w9pHNli6/YYYQqu2XcA3pRjsUr/eosrTcPKC5l7u84vpGcDaCu6YXXQ6G7A42kN0eX61OmwDYmujEyU0tUqejE7qoj06436Mk254WbjyGeaojCkW5qxK55PXBp4RKJ6/Bz8JwV2Mz7is6WZo0CuMu7wT7mzkCUXZi4h1rxuvZW6EUUEo3PKaZMz9HVnBerHT3uWjmkqoTaNaej3n1mJr9yDQQ7rbHrneR42opsFe4C1LJXMe7wlAFudEnzdzYRY4ycNe4Yn7Kx2XaR4IM7mE5CfeDmSNjugkBXTEId5ohmVllVZ2Wtcl+skehBmkeKy9HnjlAIaGwUtxWw2TAJqTsT69cKcz9N42Uo2eMu9NMcIco6rru0lZ0g6xmZi5WRy/tU7ppOro7MyJhZmj0J6AJNwNRMgMEoUgyZ3abLXMKfpLZZJXGDqkW7qnJkhk78yT3QBl36sQ8d7EVDfIxXbDFHUgdYeGRv25SDXPzdJ2W91kNjr9Vbjptwjw2pc4qGksW7jZSyTxBss5rP+7iDkqC2SHXxT8rf3rgpml0c9nu5CXRBatEF3cV4rTHjGk1bj1uponszktQq9O+qRHCW8/8fLy7I3G3hUfduB8IHIztduGq+wJanib8TLeCDiq9M/B4LdPZNAt25yy8DdhM26hEONi40ypm43T39wbjjkvYNPNkT08gnfe4wUPJjCtRgejN3U+qmae8GLlB7pHwTks6He/AfPea7EZ3Q0HM/EDqgO4+a3G6aaBbsSpm8kM4lrl7eiXzLJjjYRu4iDuEMycVVgzaXuPOP5mb946V2VzntzC3+17xVqPHikAjd7qk5QmOM79UlVGB7uyL5woke9qrv7m3ZZL3iiCRxr+tgde7WTGPdykMR7mYmbnXigpsRnZ/nugubZg0/CS02RUW2Xbvgh/NTNPx5eL98kvvpGteo/DkulF+qMDNf2I6eCM3PeQNO+kS8jz3dOOezG1jjcgGI8ZkurMxK6Kbpiy6YC5zsxfSdLpbwI95uaMrc99Xr3R0WIk7a5XM/S1ICZLtVMNkuSfwTL6NmzHD7Kz7xcOP4668OPPef9zeHPJDtsv32c2Pn/7x73//f/szbV4="; \ No newline at end of file diff --git a/docs/classes/errors.AccessTokenError.html b/docs/classes/errors.AccessTokenError.html index a85fd5247..3702c50a1 100644 --- a/docs/classes/errors.AccessTokenError.html +++ b/docs/classes/errors.AccessTokenError.html @@ -1,4 +1,4 @@ -
Optionalcause: OAuth2ErrorOptionalcause: OAuth2ErrorOptionalmessage: stringOptionalmessage: stringError thrown when backchannel logout processing fails.
-Error thrown when backchannel logout processing fails.
+Optionalmessage: stringOptionalmessage: stringError class representing a connect account error.
-Error class representing a connect account error.
+Error class representing a Custom Token Exchange error. +
Error class representing a Custom Token Exchange error.
Extends the SdkError class.
This error is thrown when a Custom Token Exchange operation fails, such as validation errors or server-side token exchange failures.
Constructs a new CustomTokenExchangeError instance.
The error code.
The error message.
Optionalcause: OAuth2ErrorThe OAuth2 cause of the error.
-OptionalcauseThe underlying OAuth2 error that caused this error (if applicable).
+The error code associated with the custom token exchange error.
+Represents an error that occurred during DPoP (Demonstrating Proof-of-Possession) operations.
+Represents an error that occurred during DPoP (Demonstrating Proof-of-Possession) operations.
DPoP is an OAuth 2.0 extension that provides application-level proof-of-possession security by binding access tokens to cryptographic key pairs. This error is thrown when DPoP-related operations fail, such as key pair operations, proof generation, or configuration issues.
@@ -16,7 +16,7 @@Constructs a new DPoPError instance.
OptionalcauseThe underlying error that caused this DPoP error (optional)
+The specific DPoP error code indicating the type of failure
+Optionalmessage: stringOptionalmessage: stringOptionalmessage: stringOptionalmessage: stringThrown when request validation fails (missing/invalid params). +
Thrown when request validation fails (missing/invalid params). Mapped to 400 Bad Request.
-Optionalmessage: stringOptionalmessage: stringError thrown when initiating an MFA challenge fails.
+Error thrown when initiating an MFA challenge fails.
Optionalcause: MfaApiErrorResponseOptionalcause: MfaApiErrorResponseError thrown when MFA enrollment fails.
+Error thrown when MFA enrollment fails.
Optionalcause: MfaApiErrorResponseOptionalcause: MfaApiErrorResponseError thrown when listing MFA authenticators fails.
+Error thrown when listing MFA authenticators fails.
Optionalcause: MfaApiErrorResponseOptionalcause: MfaApiErrorResponseError thrown when no MFA factors are available for challenge. +
Error thrown when no MFA factors are available for challenge. SDK-generated error (no Auth0 API equivalent).
-Error thrown when MFA verification fails.
+Error thrown when MFA verification fails.
Optionalcause: MfaApiErrorResponseOptionalcause: MfaApiErrorResponseOptionalmessage: stringOptionalmessage: stringError class representing a connect account request error.
-Error class representing a connect account request error.
+OptionalvalidationA human-readable description of the specific error. Required.
+OptionalvalidationA human-readable description of the specific error. Required.
Optionalfield?: stringThe name of the invalid parameter. Optional.
Optionalpointer?: stringA JSON Pointer that points to the exact location of the error in a JSON document being validated. Optional.
Optionalsource?: stringSpecifies the source of the error (e.g., body, query, or header in an HTML message). Optional.
-Errors that come from Auth0 in the redirect_uri callback may contain reflected user input via the OpenID Connect error and error_description query parameter.
+
Errors that come from Auth0 in the redirect_uri callback may contain reflected user input via the OpenID Connect error and error_description query parameter.
You should not render the error message, or error and error_description properties without properly escaping them first.
AbstractAbstractOptionalmessage: stringOptionalmessage: stringAbstractAbstractProtectedrollingOptionalstoreisRolling returns true if rolling sessions are enabled.
-calculateMaxAge calculates the max age of the session based on createdAt and the rolling and absolute durations.
-Abstractdeleteepoch returns the time since unix epoch in seconds.
-AbstractgetAbstractsetsave adds the encrypted session cookie as a Set-Cookie header. If the iat property
+
ProtectedrollingOptionalstoreisRolling returns true if rolling sessions are enabled.
+calculateMaxAge calculates the max age of the session based on createdAt and the rolling and absolute durations.
+Abstractdeleteepoch returns the time since unix epoch in seconds.
+AbstractgetAbstractsetsave adds the encrypted session cookie as a Set-Cookie header. If the iat property
is present on the session, then it will be used to compute the maxAge cookie value.
OptionalisNew: booleanOptionalisNew: booleanMFA API for server-side operations.
Provides access to MFA methods that require encrypted mfa_token from MfaRequiredError:
try {
const { token } = await auth0.getAccessToken({ audience: 'https://api.example.com' });
} catch (error) {
if (error instanceof MfaRequiredError) {
// Get available authenticators
const authenticators = await auth0.mfa.getAuthenticators({
mfaToken: error.mfa_token
});
// Initiate challenge
const challenge = await auth0.mfa.challenge({
mfaToken: error.mfa_token,
challengeType: 'otp',
authenticatorId: authenticators[0].id
});
// Verify code
const tokens = await auth0.mfa.verify({
mfaToken: error.mfa_token,
otp: '123456'
});
}
}
-Initiates the Connect Account flow to connect a third-party account to the user's profile.
If the user does not have an active session, a ConnectAccountError is thrown.
This method first attempts to obtain an access token with the create:me:connected_accounts scope
for the My Account API to create a connected account for the user.
The user will then be redirected to authorize the connection with the third-party provider.
You must enable Offline Access from the Connection Permissions settings to be able to use the connection with Connected Accounts.
Creates a configured Fetcher instance for making authenticated API requests.
+Creates a configured Fetcher instance for making authenticated API requests.
This method creates a specialized HTTP client that handles:
Exchanges an external token for Auth0 tokens using Custom Token Exchange (RFC 8693).
+Exchanges an external token for Auth0 tokens using Custom Token Exchange (RFC 8693).
This is a server-only method that does NOT modify the session. The returned tokens can be used independently or stored by the developer.
Note: CTE tokens are not cached. The caller is responsible for token storage if needed.
@@ -67,11 +67,11 @@Optionaloptions: GetAccessTokenOptionsOptional configuration for getting the access token.
+Optionaloptions: GetAccessTokenOptionsOptional configuration for getting the access token.
Optionalaudience?: string | nullPlease note: If you are passing audience, ensure that the used audiences and scopes are part of the Application's Refresh Token Policies in Auth0 when configuring Multi-Resource Refresh Tokens (MRRT). Auth0 Documentation on Multi-resource Refresh Tokens
-Optionalrefresh?: boolean | nullOptionalscope?: string | nullgetAccessToken returns the access token.
+Optionalrefresh?: boolean | nullOptionalscope?: string | nullgetAccessToken returns the access token.
This method can be used in middleware and getServerSideProps, API routes in the Pages Router.
The request object.
The response object.
@@ -79,23 +79,23 @@Optionalaudience?: string | nullPlease note: If you are passing audience, ensure that the used audiences and scopes are part of the Application's Refresh Token Policies in Auth0 when configuring Multi-Resource Refresh Tokens (MRRT). Auth0 Documentation on Multi-resource Refresh Tokens
-Optionalrefresh?: boolean | nullOptionalscope?: string | nullRetrieves an access token for a connection.
+Optionalrefresh?: boolean | nullOptionalscope?: string | nullRetrieves an access token for a connection.
This method can be used in Server Components, Server Actions, and Route Handlers in the App Router.
NOTE: Server Components cannot set cookies. Calling getAccessTokenForConnection() in a Server Component will cause the access token to be refreshed, if it is expired, and the updated token set will not to be persisted.
It is recommended to call getAccessTokenForConnection(req, res) in the middleware if you need to retrieve the access token in a Server Component to ensure the updated token set is persisted.
Retrieves an access token for a connection.
+Retrieves an access token for a connection.
This method can be used in middleware and getServerSideProps, API routes in the Pages Router.
getSession returns the session data for the current request.
+getSession returns the session data for the current request.
This method can be used in Server Components, Server Actions, and Route Handlers in the App Router.
-getSession returns the session data for the current request.
+getSession returns the session data for the current request.
This method can be used in middleware and getServerSideProps, API routes in the Pages Router.
Authenticates using Client-Initiated Backchannel Authentication and returns the token set and optionally the ID token claims and authorization details.
+Authenticates using Client-Initiated Backchannel Authentication and returns the token set and optionally the ID token claims and authorization details.
This method will initialize the backchannel authentication process with Auth0, and poll the token endpoint until the authentication is complete.
Using Client-Initiated Backchannel Authentication requires the feature to be enabled in the Auth0 dashboard.
middleware mounts the SDK routes to run as a middleware function.
-updateSession updates the session of the currently authenticated user. If the user does not have a session, an error is thrown.
+middleware mounts the SDK routes to run as a middleware function.
+updateSession updates the session of the currently authenticated user. If the user does not have a session, an error is thrown.
This method can be used in middleware and getServerSideProps, API routes, and middleware in the Pages Router.
updateSession updates the session of the currently authenticated user. If the user does not have a session, an error is thrown.
+updateSession updates the session of the currently authenticated user. If the user does not have a session, an error is thrown.
This method can be used in Server Actions and Route Handlers in the App Router.
-Optionalopts: WithPageAuthRequiredAppRouterOptions<P>Optionalopts: WithPageAuthRequiredAppRouterOptions<P>Error thrown when domain resolution fails during MCD initialization or request handling.
+Error thrown when domain resolution fails during MCD initialization or request handling.
This error is public and may be caught by application code.
-Creates a new DomainResolutionError instance.
Optionalmessage: stringA descriptive error message
Optionalcause: ErrorThe underlying error that caused the resolution failure (optional)
-Error thrown when a domain hostname fails validation.
+Error thrown when a domain hostname fails validation.
This includes rejection of IP addresses, localhost, .local domains, paths, and ports. This error is public and may be caught by application code.
-Creates a new DomainValidationError instance.
Optionalmessage: stringA descriptive error message
-Error thrown when the issuer URL is invalid or cannot be resolved.
+Error thrown when the issuer URL is invalid or cannot be resolved.
This error is public and may be caught by application code.
-Creates a new IssuerValidationError instance.
The expected issuer URL
The actual issuer URL from the token
-Thrown when getAccessToken requires MFA step-up authentication.
+Thrown when getAccessToken requires MFA step-up authentication.
This error is thrown during token refresh when Auth0 returns mfa_required.
The mfa_token property contains an encrypted token that can be used
with Auth0's MFA API to complete the authentication challenge.
Optional ReadonlycauseReadonlycodeReadonlyerrorOriginal Auth0 error code
-Readonlyerror_Original Auth0 error description
-Optional Readonlymfa_MFA requirements indicating available challenge/enrollment methods
-Readonlymfa_Encrypted MFA token to pass to MFA API methods.
-Serialize error for HTTP responses. +
Optional ReadonlycauseReadonlycodeReadonlyerrorOriginal Auth0 error code
+Readonlyerror_Original Auth0 error description
+Optional Readonlymfa_MFA requirements indicating available challenge/enrollment methods
+Readonlymfa_Encrypted MFA token to pass to MFA API methods.
+Serialize error for HTTP responses. Called automatically by Response.json() and JSON.stringify(). Ensures both SDK and HTTP API consumers get identical shape.
-Thrown when MFA API methods are called but no context exists in session +
Thrown when MFA API methods are called but no context exists in session for the provided encrypted mfa_token.
This typically occurs when:
Thrown when the encrypted mfa_token is invalid.
+Thrown when the encrypted mfa_token is invalid.
This occurs when:
Error thrown when a session's domain does not match the current request domain.
+Error thrown when a session's domain does not match the current request domain.
This indicates a potential security issue where a user is attempting to use a session created for a different domain.
-Creates a new SessionDomainMismatchError instance.
Optionalmessage: stringA descriptive error message
-TransactionStore is responsible for storing the state required to successfully complete +
TransactionStore is responsible for storing the state required to successfully complete an authentication transaction. The store relies on encrypted, stateless cookies to store the transaction state.
-Deletes all transaction cookies based on the configured prefix.
-Returns the configured prefix for transaction cookies.
-Saves the transaction state to an encrypted cookie.
+Deletes all transaction cookies based on the configured prefix.
+Returns the configured prefix for transaction cookies.
+Saves the transaction state to an encrypted cookie.
The response cookies object to set the transaction cookie on
The transaction state to save
OptionalreqCookies: RequestCookiesOptional request cookies to check for existing transactions. @@ -17,4 +17,4 @@ will check for existing transaction cookies. When omitted, the existence check is skipped for performance optimization.
Enum representing error codes related to access tokens for connections.
-Enum representing error codes related to access tokens for connections.
+Failed to exchange the refresh token.
-The refresh token is missing.
-The session is missing.
-The refresh token is missing.
+The session is missing.
+Enum representing error codes related to the connect account flow.
-Enum representing error codes related to the connect account flow.
+Failed to complete the connect account flow.
-Failed to initiate the connect account flow.
-The session is missing.
-Failed to initiate the connect account flow.
+The session is missing.
+Error codes for Custom Token Exchange errors.
-Error codes for Custom Token Exchange errors.
+The token exchange request failed.
-The subject_token_type is not a valid URI, wrong length, or uses a reserved namespace.
-The actor_token was provided without actor_token_type.
-The subject_token is missing or empty.
-The subject_token_type is not a valid URI, wrong length, or uses a reserved namespace.
+The actor_token was provided without actor_token_type.
+The subject_token is missing or empty.
+Error codes for DPoP-related errors.
+Error codes for DPoP-related errors.
These error codes categorize different types of failures that can occur during DPoP (Demonstrating Proof-of-Possession) operations.
-DPoP configuration is invalid or incomplete. This occurs when the provided DPoP configuration contains invalid values or missing required components.
-Failed to calculate dpop_jkt (JWK thumbprint) parameter. +
Failed to calculate dpop_jkt (JWK thumbprint) parameter. This occurs when the SDK cannot generate the required thumbprint from the provided public key for the authorization request.
-Failed to export DPoP public key to JWK format. +
Failed to export DPoP public key to JWK format. This occurs when the SDK cannot convert the CryptoKey to the JSON Web Key format required for DPoP proofs.
-Connect Account flow.
+Indicates that the token is an OAuth 2.0 access token issued by the given authorization server.
Indicates that the token is an OAuth 2.0 refresh token issued by the given authorization server.
+Indicates that the token is an OAuth 2.0 refresh token issued by the given authorization server.
Fetches an access token for the currently logged-in user.
+Fetches an access token for the currently logged-in user.
Options for fetching the access token, including optional audience and scope.
The access token as a string, or the full token response when includeFullResponse is true.
Fetches an access token for the currently logged-in user.
+Fetches an access token for the currently logged-in user.
Optionaloptions: AccessTokenOptions & { includeFullResponse?: false }Options for fetching the access token, including optional audience and scope.
The access token as a string, or the full token response when includeFullResponse is true.
Filters the claims to only include those that are considered default.
+Filters the claims to only include those that are considered default.
The claims to filter.
The filtered claims containing only default ID token claims.
-Generates a new ES256 key pair for DPoP (Demonstrating Proof-of-Possession) operations.
+This function creates a cryptographically secure ES256 key pair suitable for DPoP proof +generation. The generated keys use the P-256 elliptic curve with SHA-256 hashing, +which is the required algorithm for DPoP as specified in RFC 9449.
+Promise that resolves to a DpopKeyPair containing the private and public keys
+

The Auth0 Next.js SDK is a library for implementing user authentication in Next.js applications.
Options to customize the withPageAuthRequired higher order component.
-Options to customize the withPageAuthRequired higher order component.
+OptionalonwithPageAuthRequired(Profile, {
onError: error => <div>Error: {error.message}</div>
});
Render a fallback in case of error fetching the user from the profile API route.
-OptionalonwithPageAuthRequired(Profile, {
onRedirecting: () => <div>Redirecting...</div>
});
+OptionalonwithPageAuthRequired(Profile, {
onRedirecting: () => <div>Redirecting...</div>
});
Render a message to show that the user is being redirected.
-OptionalreturnwithPageAuthRequired(Profile, {
returnTo: '/profile'
});
+OptionalreturnwithPageAuthRequired(Profile, {
returnTo: '/profile'
});
Add a path to return the user to after login.
-Interface for Auth0 MFA API error responses. +
Interface for Auth0 MFA API error responses. All MFA errors from Auth0 follow this shape (snake_case).
-MFA requirements from an mfa_required error response. +
MFA requirements from an mfa_required error response. Indicates which MFA methods are available for the user. Matches Auth0 API response shape and auth0-spa-js type.
-OptionalenrollRequired enrollment types (user needs to enroll new authenticator)
+Options for retrieving a connection access token.
-Options for retrieving a connection access token.
+The connection name for while you want to retrieve the access token.
-Optionallogin_An optional login hint to pass to the authorization server.
-Optionalsubject_The type of token that is being exchanged.
+Optionallogin_An optional login hint to pass to the authorization server.
+Optionalsubject_The type of token that is being exchanged.
Uses the SUBJECT_TOKEN_TYPES enum with the following allowed values:
SUBJECT_TYPE_REFRESH_TOKEN: "urn:ietf:params:oauth:token-type:refresh_token"SUBJECT_TYPE_ACCESS_TOKEN: "urn:ietf:params:oauth:token-type:access_token"Defaults to SUBJECT_TYPE_REFRESH_TOKEN.
OptionalallowAllow insecure requests to be made to the authorization server. This can be useful when testing
with a mock OIDC provider that does not support TLS, locally.
This option can only be used when NODE_ENV is not set to production.
OptionalappThe URL of your application (e.g.: http://localhost:3000).
OptionalappThe URL of your application (e.g.: http://localhost:3000).
Can be a single URL string, or an array of allowed base URLs. When an array is provided, the SDK validates the incoming request origin against the list and uses the matching entry (allow-list mode). This is useful for multi-domain or preview @@ -40,27 +40,27 @@
If it's not specified, it will be loaded from the APP_BASE_URL environment variable.
Multiple origins can be provided as a comma-separated string (e.g. https://app.example.com,https://myapp.vercel.app).
If neither is provided, the SDK will infer it from the request host at runtime.
OptionalauthorizationAdditional parameters to send to the /authorize endpoint.
OptionalbeforeA method to manipulate the session before persisting it.
+OptionalauthorizationAdditional parameters to send to the /authorize endpoint.
OptionalbeforeA method to manipulate the session before persisting it.
See beforeSessionSaved for additional details
-OptionalclientThe algorithm used to sign the client assertion JWT. +
OptionalclientThe algorithm used to sign the client assertion JWT.
Uses one of token_endpoint_auth_signing_alg_values_supported if not specified.
If the Authorization Server discovery document does not list token_endpoint_auth_signing_alg_values_supported
this property will be required.
OptionalclientPrivate key for use with private_key_jwt clients.
+
OptionalclientPrivate key for use with private_key_jwt clients.
This should be a string that is the contents of a PEM file or a CryptoKey.
OptionalclientThe Auth0 client ID.
+OptionalclientThe Auth0 client ID.
If it's not specified, it will be loaded from the AUTH0_CLIENT_ID environment variable.
OptionalclientThe Auth0 client secret.
+OptionalclientThe Auth0 client secret.
If it's not specified, it will be loaded from the AUTH0_CLIENT_SECRET environment variable.
OptionaldiscoveryConfiguration for the OIDC discovery metadata cache. +
OptionaldiscoveryConfiguration for the OIDC discovery metadata cache. Controls TTL and maximum cached issuers for MCD resolver mode. Also applies in static mode (single cached entry).
OptionaldomainThe Auth0 domain for the tenant.
+OptionaldomainThe Auth0 domain for the tenant.
string: Static domain (e.g., "example.us.auth0.com"). Existing behavior preserved.DomainResolver: Async function resolving domain per-request from headers.
@@ -71,7 +71,7 @@
OptionaldpopES256 key pair for DPoP proof generation.
+OptionaldpopES256 key pair for DPoP proof generation.
If not provided when useDPoP is true, the SDK will attempt to load keys from
environment variables AUTH0_DPOP_PUBLIC_KEY and AUTH0_DPOP_PRIVATE_KEY.
Keys must be in PEM format and use the P-256 elliptic curve.
OptionaldpopConfiguration options for DPoP timing validation and retry behavior.
+OptionaldpopConfiguration options for DPoP timing validation and retry behavior.
These options control how the SDK validates DPoP proof timing and handles nonce errors. Proper configuration is important for both security and reliability.
const auth0 = new Auth0Client({
useDPoP: true,
dpopOptions: {
clockTolerance: 60, // Allow 60 seconds clock difference
clockSkew: 0, // No clock adjustment needed
retry: {
delay: 200, // 200ms delay before retry
jitter: true // Add randomness to prevent thundering herd
}
}
});
@@ -95,17 +95,17 @@
OptionalenableBoolean value to enable the /auth/access-token endpoint for use in the client app.
OptionalenableBoolean value to enable the /auth/access-token endpoint for use in the client app.
Defaults to true.
NOTE: Set this to false if your client does not need to directly interact with resource servers (Token Mediating Backend). This will be false for most apps.
A security best practice is to disable this to avoid exposing access tokens to the client app.
-OptionalenableIf true, the /auth/connect endpoint will be mounted to enable users to connect additional accounts.
OptionalenableOptionalenableBoolean value to opt-out of sending the library name and version to your authorization server +
OptionalenableIf true, the /auth/connect endpoint will be mounted to enable users to connect additional accounts.
OptionalenableOptionalenableBoolean value to opt-out of sending the library name and version to your authorization server
via the Auth0-Client header. Defaults to true.
OptionalhttpInteger value for the HTTP timeout in milliseconds for authentication requests. +
OptionalhttpInteger value for the HTTP timeout in milliseconds for authentication requests.
Defaults to 5000 ms.
OptionalincludeConfigure whether to include id_token_hint in OIDC logout URLs.
+OptionalincludeConfigure whether to include id_token_hint in OIDC logout URLs.
Recommended (default): Set to true to include id_token_hint parameter.
Auth0 recommends using id_token_hint for secure logout as per the
OIDC specification.
OptionallogoutConfigure the logout strategy to use.
+OptionallogoutConfigure the logout strategy to use.
'auto' (default): Attempts OIDC RP-Initiated Logout first, falls back to /v2/logout if not supported'oidc': Always uses OIDC RP-Initiated Logout (requires RP-Initiated Logout to be enabled)'v2': Always uses the Auth0 /v2/logout endpoint (supports wildcards in allowed logout URLs)OptionalmfaMFA context TTL in seconds. Controls how long encrypted mfa_token remains valid. +
OptionalmfaMFA context TTL in seconds. Controls how long encrypted mfa_token remains valid. Default: 300 (5 minutes, matching Auth0's mfa_token expiration)
Can also be set via AUTH0_MFA_TOKEN_TTL environment variable.
OptionalnoIf true, the profile endpoint will return a 204 No Content response when the user is not authenticated +
OptionalnoIf true, the profile endpoint will return a 204 No Content response when the user is not authenticated instead of returning a 401 Unauthorized response.
Defaults to false.
OptionalonA method to handle errors or manage redirects after attempting to authenticate.
+OptionalonA method to handle errors or manage redirects after attempting to authenticate.
See onCallback for additional details
-OptionalpushedIf enabled, the SDK will use the Pushed Authorization Requests (PAR) protocol when communicating with the authorization server.
-OptionalroutesConfigure the paths for the authentication routes.
+OptionalpushedIf enabled, the SDK will use the Pushed Authorization Requests (PAR) protocol when communicating with the authorization server.
+OptionalroutesConfigure the paths for the authentication routes.
See Custom routes for additional details.
-OptionalsecretA 32-byte, hex-encoded secret used for encrypting cookies.
+OptionalsecretA 32-byte, hex-encoded secret used for encrypting cookies.
If it's not specified, it will be loaded from the AUTH0_SECRET environment variable.
OptionalsessionConfigure the session timeouts and whether to use rolling sessions or not.
+OptionalsessionConfigure the session timeouts and whether to use rolling sessions or not.
See Session configuration for additional details.
-OptionalsessionA custom session store implementation used to persist sessions to a data store.
+OptionalsessionA custom session store implementation used to persist sessions to a data store.
See Database sessions for additional details.
-OptionalsignThe path to redirect the user to after successfully authenticating. Defaults to /.
OptionaltokenNumber of seconds to refresh access tokens early when calling getAccessToken.
+
OptionalsignThe path to redirect the user to after successfully authenticating. Defaults to /.
OptionaltokenNumber of seconds to refresh access tokens early when calling getAccessToken.
This is a server-side buffer applied to token expiration checks. For example,
with a buffer of 60 seconds, tokens expiring within the next minute will be
refreshed proactively when a refresh token is available.
Defaults to 0 (no early refresh).
OptionaltransactionConfigure the transaction cookie used to store the state of the authentication transaction.
-OptionaluseEnable DPoP (Demonstrating Proof-of-Possession) for enhanced OAuth 2.0 security.
+OptionaltransactionConfigure the transaction cookie used to store the state of the authentication transaction.
+OptionaluseEnable DPoP (Demonstrating Proof-of-Possession) for enhanced OAuth 2.0 security.
When enabled, the SDK will:
MFA authenticator (enrolled factor). +
MFA authenticator (enrolled factor). Uses camelCase for SDK-facing interface.
Whether authenticator is active
-Authenticator type (primary field mapped from authenticator_type)
-OptionalcreatedISO 8601 timestamp of creation
-Authenticator ID
-OptionallastISO 8601 timestamp of last authentication
-OptionalnameAuthenticator name (user-defined or default)
-OptionaloobOOB channel (sms, voice)
-OptionalphonePhone number for OOB (masked)
-OptionaltypeDirect type value (optional, feature-flagged field from Auth0 API)
-Authenticator type (primary field mapped from authenticator_type)
+OptionalcreatedISO 8601 timestamp of creation
+Authenticator ID
+OptionallastISO 8601 timestamp of last authentication
+OptionalnameAuthenticator name (user-defined or default)
+OptionaloobOOB channel (sms, voice)
+OptionalphonePhone number for OOB (masked)
+OptionaltypeDirect type value (optional, feature-flagged field from Auth0 API)
+Additional authorization parameters.
-Additional authorization parameters.
+OptionalaudienceThe unique identifier of the target API you want to access.
-Optionalmax_The maximum amount of time, in seconds, after which a user must reauthenticate.
-OptionalorganizationThe unique identifier of the organization that the user should be logged into. +
Optionalmax_The maximum amount of time, in seconds, after which a user must reauthenticate.
+OptionalorganizationThe unique identifier of the organization that the user should be logged into. When specified, the user will be prompted to log in to this specific organization. The organization ID will be included in the user's session after successful authentication.
-Optionalredirect_The URL to which the authorization server will redirect the user after granting authorization.
-OptionalscopeThe scope of the access request, expressed as a list of space-delimited, case-sensitive strings. +
Optionalredirect_The URL to which the authorization server will redirect the user after granting authorization.
+OptionalscopeThe scope of the access request, expressed as a list of space-delimited, case-sensitive strings.
Defaults to "openid profile email offline_access".
OptionalauthorizationOptional authorization details to use Rich Authorization Requests (RAR).
OptionalauthorizationAuthorization Parameters to be sent with the authorization request.
-Human-readable message to be displayed at the consumption device and authentication device. +
OptionalauthorizationAuthorization Parameters to be sent with the authorization request.
+Human-readable message to be displayed at the consumption device and authentication device. This allows the user to ensure the transaction initiated by the consumption device is the same that triggers the action on the authentication device.
-The login hint to inform which user to use.
+The login hint to inform which user to use.
The sub claim of the user that is trying to login using Client-Initiated Backchannel Authentication, and to which a push notification to authorize the login will be sent.
OptionalrequestedSet a custom expiry time for the CIBA flow in seconds. Defaults to 300 seconds (5 minutes) if not set.
-OptionalrequestedSet a custom expiry time for the CIBA flow in seconds. Defaults to 300 seconds (5 minutes) if not set.
+MFA challenge response. +
MFA challenge response. Uses camelCase for SDK-facing interface.
Challenge type (otp, oob)
+OptionaloobOOB code (for oob challenges)
+Options to initiate a connect account flow using the My Account API.
+Options to initiate a connect account flow using the My Account API.
OptionalauthorizationAuthorization parameters to be passed to the authorization server.
-The name of the connection to link the account with (e.g., 'google-oauth2', 'facebook').
-OptionalreturnThe URL to redirect to after successfully connecting the account.
-OptionalscopesArray of scopes to request from the Identity Provider during the connect account flow.
-The name of the connection to link the account with (e.g., 'google-oauth2', 'facebook').
+OptionalreturnThe URL to redirect to after successfully connecting the account.
+OptionalscopesArray of scopes to request from the Identity Provider during the connect account flow.
+Options for Custom Token Exchange.
+Options for Custom Token Exchange.
Custom Token Exchange allows exchanging external tokens for Auth0 tokens without a browser redirect. The external token is validated by an Auth0 Action with the Custom Token Exchange trigger.
OptionalactorActor token for delegation/impersonation scenarios (RFC 8693). Represents the identity of the acting party.
If provided, actorTokenType is required.
OptionalactorActor token type URI (required if actorToken is provided).
-OptionaladditionalAdditional custom parameters passed to the token endpoint. +
OptionalactorActor token type URI (required if actorToken is provided).
+OptionaladditionalAdditional custom parameters passed to the token endpoint.
Accessible in Auth0 Action via event.request.body.
Use this for custom parameters instead of index signature to avoid TypeScript issues.
-OptionalaudienceThe unique identifier of the target API.
-OptionalorganizationOrganization ID or name for multi-tenant scenarios. +
OptionalaudienceThe unique identifier of the target API.
+OptionalorganizationOrganization ID or name for multi-tenant scenarios. The organization ID will be present in the resulting access token claims.
-OptionalscopeSpace-delimited OAuth 2.0 scopes.
+OptionalscopeSpace-delimited OAuth 2.0 scopes.
Note: These scopes are merged with SDK default scopes (openid profile email offline_access). Duplicates are removed.
-The external token being exchanged. +
The external token being exchanged. This will be validated by your Auth0 Action with the Custom Token Exchange trigger.
Validation: Must be a non-empty string.
-Custom URI identifying the token type.
+Custom URI identifying the token type.
Validation Rules:
Response from Custom Token Exchange.
-Response from Custom Token Exchange.
+The access token issued by Auth0
-Token lifetime in seconds
-OptionalidThe ID token, if openid scope was requested
-OptionalrefreshThe refresh token, if offline_access scope was requested
-OptionalscopeGranted scopes
-Token type, typically "Bearer" or "DPoP"
-Token lifetime in seconds
+OptionalidThe ID token, if openid scope was requested
+OptionalrefreshThe refresh token, if offline_access scope was requested
+OptionalscopeGranted scopes
+Token type, typically "Bearer" or "DPoP"
+Configuration for the OIDC discovery metadata cache. +
Configuration for the OIDC discovery metadata cache. Applies in both static and resolver modes.
OptionalttlTime-to-live for cached discovery metadata in seconds. Default: 600 (10 minutes).
+Enroll OOB authenticator (SMS/Voice/Push/Email).
-Enroll OOB authenticator (SMS/Voice/Push/Email).
+Authenticator types to enroll
-OptionalemailEmail address (optional for email channel - uses user's email if not provided)
-Encrypted MFA token
-OOB channels (sms, voice, auth0, email)
-OptionalphonePhone number in E.164 format (required for sms/voice)
-OptionalemailEmail address (optional for email channel - uses user's email if not provided)
+Encrypted MFA token
+OOB channels (sms, voice, auth0, email)
+OptionalphonePhone number in E.164 format (required for sms/voice)
+Enroll OTP authenticator (TOTP app like Authy/Google Authenticator).
-Enroll OTP authenticator (TOTP app like Authy/Google Authenticator).
+Encrypted MFA token
+InternalMetadata for a specific domain and its associated issuer. +
InternalMetadata for a specific domain and its associated issuer. Stored in session internal state to track which domain authenticated the user.
-The OIDC issuer URL for the domain
+MFA client interface available in both server and client contexts.
-MFA client interface available in both server and client contexts.
+Initiate an MFA challenge.
Challenge options
Challenge response (oobCode, bindingMethod)
-Enroll a new MFA authenticator during initial MFA setup.
+Enroll a new MFA authenticator during initial MFA setup.
Enrollment options (otp | oob | email)
Enrollment response with authenticator details and optional recovery codes
-List enrolled authenticators for the user. +
List enrolled authenticators for the user. Filters by allowed challenge types from mfa_requirements.
Options containing encrypted mfaToken
Array of authenticators
-Verify MFA code and complete authentication. +
Verify MFA code and complete authentication. Caches resulting access token in session.
Verification options (otp | oobCode+bindingCode | recoveryCode)
Token response with access token, refresh token, etc.
-MFA context embedded in encrypted token. +
MFA context embedded in encrypted token. Self-contained with all information needed for challenge completion.
-Timestamp for TTL validation (milliseconds since epoch)
+MFA requirements from Auth0
+Raw mfa_token from Auth0
+Scopes requested
+MFA verify response from Auth0. +
MFA verify response from Auth0. Uses snake_case to match Auth0 API and SPA SDK conventions.
Access token
-OptionalaudienceAPI audience
-Expires in seconds
-Optionalid_ID token (if present)
-Optionalrecovery_Recovery code (if regenerated by tenant config)
-Optionalrefresh_Refresh token (if present)
-OptionalscopeToken scope
-Token type (usually "Bearer")
-OptionalaudienceAPI audience
+Expires in seconds
+Optionalid_ID token (if present)
+Optionalrecovery_Recovery code (if regenerated by tenant config)
+Optionalrefresh_Refresh token (if present)
+OptionalscopeToken scope
+Token type (usually "Bearer")
+OptionalabsoluteThe absolute duration after which the session will expire. The value must be specified in seconds.
Once the absolute duration has been reached, the session will no longer be extended.
Default: 3 days.
-OptionalcookieThe options for the session cookie.
-OptionalinactivityThe duration of inactivity after which the session will expire. The value must be specified in seconds.
+OptionalcookieThe options for the session cookie.
+OptionalinactivityThe duration of inactivity after which the session will expire. The value must be specified in seconds.
The session will be extended as long as it was active before the inactivity duration has been reached.
Default: 1 day.
-OptionalrollingA boolean indicating whether rolling sessions should be used or not.
+OptionalrollingA boolean indicating whether rolling sessions should be used or not.
When enabled, the session will continue to be extended as long as it is used within the inactivity duration.
Once the upper bound, set via the absoluteDuration, has been reached, the session will no longer be extended.
Default: true.
OptionaldomainSpecifies the value for the Set-Cookie attribute. By default, no domain is set, and most clients will consider the cookie to apply to only the current domain.
-OptionalnameThe name of the session cookie.
+OptionalnameThe name of the session cookie.
Default: __session.
OptionalpathThe path attribute of the session cookie. Will be set to '/' by default.
-OptionalsameThe sameSite attribute of the session cookie.
+OptionalpathThe path attribute of the session cookie. Will be set to '/' by default.
+OptionalsameThe sameSite attribute of the session cookie.
Default: lax.
OptionalsecureThe secure attribute of the session cookie.
+OptionalsecureThe secure attribute of the session cookie.
Default: depends on the protocol of the application's base URL. If the protocol is https, then true, otherwise false.
OptionaltransientThe transient attribute of the session cookie. When true, the cookie will not persist beyond the current session.
-OptionaltransientThe transient attribute of the session cookie. When true, the cookie will not persist beyond the current session.
+Interface for a custom session data store.
+TTL contract: every successful write method (set, update) must reset the session
+TTL/expiry so that active sessions are not silently expired between requests.
Destroys the session with the given session ID.
-OptionaldeleteDeletes the session with the given logout token which may contain a session ID or a user ID, or both.
+OptionaldeleteDeletes the session with the given logout token which may contain a session ID or a user ID, or both.
MCD resolver mode: When using multiple custom domains with a domain resolver,
implementations MUST filter on the iss field in addition to sub/sid to
ensure sessions are only deleted for the matching issuer. Custom domains on the
same tenant share signing keys, so failing to filter on iss allows a logout
token from one domain to delete sessions created by a different domain.
Gets the session from the store given a session ID.
-Upsert a session in the store given a session ID and SessionData.
Gets the session from the store given a session ID.
+Upsert a session in the store given a session ID and SessionData.
OptionalupdateOptional: update the session by its ID only if it already exists.
+Return true if updated, false if not found.
OptionalabsoluteThe absolute duration after which the session will expire. The value must be specified in seconds.
Once the absolute duration has been reached, the session will no longer be extended.
Default: 3 days.
-OptionalcookieThe options for the session cookie.
-OptionalcookieOptionalinactivityThe duration of inactivity after which the session will expire. The value must be specified in seconds.
+OptionalcookieThe options for the session cookie.
+OptionalcookieOptionalinactivityThe duration of inactivity after which the session will expire. The value must be specified in seconds.
The session will be extended as long as it was active before the inactivity duration has been reached.
Default: 1 day.
-OptionalrollingA boolean indicating whether rolling sessions should be used or not.
+OptionalrollingA boolean indicating whether rolling sessions should be used or not.
When enabled, the session will continue to be extended as long as it is used within the inactivity duration.
Once the upper bound, set via the absoluteDuration, has been reached, the session will no longer be extended.
Default: true.
OptionalstoreOptionalstoreOptionalreturnThe URL to redirect to after a successful login.
+OptionaldomainSpecifies the value for the Set-Cookie attribute. By default, no domain is set, and most clients will consider the cookie to apply to only the current domain.
-OptionalmaxThe expiration time for transaction cookies in seconds. +
OptionalmaxThe expiration time for transaction cookies in seconds. If not provided, defaults to 1 hour (3600 seconds).
OptionalpathThe path attribute of the transaction cookie. Will be set to '/' by default.
-OptionalprefixThe prefix of the cookie used to store the transaction state.
+OptionalpathThe path attribute of the transaction cookie. Will be set to '/' by default.
+OptionalprefixThe prefix of the cookie used to store the transaction state.
Default: __txn_{state}.
OptionalsameThe sameSite attribute of the transaction cookie.
+OptionalsameThe sameSite attribute of the transaction cookie.
Default: lax.
OptionalsecureThe secure attribute of the transaction cookie.
+OptionalsecureThe secure attribute of the transaction cookie.
Default: depends on the protocol of the application's base URL. If the protocol is https, then true, otherwise false.
Any other JWT Claim Set member.
-Any other JWT Claim Set member.
+OptionalaudienceThe audience used for this transaction.
-OptionalauthOptionalmaxOptionalnonceOptional InternaloriginThe Auth0 domain used for this transaction (MCD mode). +
OptionalauthOptionalmaxOptionalnonceOptional InternaloriginThe Auth0 domain used for this transaction (MCD mode). Stored to validate that the session is for the same domain.
-Optional InternaloriginThe OIDC issuer URL for this transaction (MCD mode). +
Optional InternaloriginThe OIDC issuer URL for this transaction (MCD mode). Stored alongside originDomain for validation.
-OptionalscopeThe scope requested for this transaction.
-OptionalscopeThe scope requested for this transaction.
+OptionalcookieOptionalenableControls whether multiple parallel login transactions are allowed. When false, only one transaction cookie is maintained at a time. When true (default), multiple transaction cookies can coexist for multi-tab support.
OptionalemailOptionalemail_Optionalfamily_Optionalgiven_OptionalnameOptionalnicknameOptionalorg_The organization ID that the user belongs to. This field is populated when the user logs in through an organization.
-OptionalpictureOptionalpictureBase options for MFA verify.
-Base options for MFA verify.
+Verification with OOB code sent via SMS/Email/Push.
+Verification with OOB code sent via SMS/Email/Push.
Verification with OTP code from authenticator app.
+Verification with OTP code from authenticator app.
Verification with recovery code (backup).
+Verification with recovery code (backup).
const MyProtectedPage = withPageAuthRequired(MyPage);
+WithPageAuthRequired | @auth0/nextjs-auth0 - v4.18.0 Type Alias WithPageAuthRequired
WithPageAuthRequired: <P extends object>(
Component: ComponentType<P & UserProps>,
options?: WithPageAuthRequiredOptions,
) => React.FC<P>const MyProtectedPage = withPageAuthRequired(MyPage);
When you wrap your pages in this higher order component and an anonymous user visits your page,
they will be redirected to the login page and then returned to the page they were redirected from (after login).
-Type Declaration
- <P extends object>(
Component: ComponentType<P & UserProps>,
options?: WithPageAuthRequiredOptions,
): React.FC<P> Type Parameters
- P extends object
Parameters
- Component: ComponentType<P & UserProps>
Optionaloptions: WithPageAuthRequiredOptions
Returns React.FC<P>
+Optionaloptions: WithPageAuthRequiredOptionsAn app route that has been augmented with WithPageAuthRequired. +
An app route that has been augmented with WithPageAuthRequired. Returns any to be compatible with React's return types while avoiding React dependency.
The generic parameter P allows passing Next.js PageProps or LayoutProps
types for strongly-typed route parameters:
export default auth0.withPageAuthRequired(
async function Page(props: PageProps<"/customers/[id]/details">) {
const { id } = await props.params;
return <div>{id}</div>;
}
);
-Objects containing the route parameters and search parameters of the page.
-Objects containing the route parameters and search parameters of the page.
+If you wrap your getServerSideProps with WithPageAuthRequired your props object will be augmented with
+
If you wrap your getServerSideProps with WithPageAuthRequired your props object will be augmented with
the user property, which will be the User object.
// pages/profile.js
import { auth0 } from "@/lib/auth0";
export default function Profile({ user }) {
return <div>Hello {user.name}</div>;
}
export const getServerSideProps = auth0.withPageAuthRequired();
-A page route that has been augmented with WithPageAuthRequired.
-A page route that has been augmented with WithPageAuthRequired.
+Protects Page router pages WithPageAuthRequiredPageRouter or +
Protects Page router pages WithPageAuthRequiredPageRouter or App router pages WithPageAuthRequiredAppRouter
-Wrap your Server Component with this method to make sure the user is authenticated before +
Wrap your Server Component with this method to make sure the user is authenticated before visiting the page.
// app/protected-page/page.js
import { auth0 } from "@/lib/auth0";
const ProtectedPage = auth0.withPageAuthRequired(async function ProtectedPage() {
return <div>Protected content</div>;
}, { returnTo: '/protected-page' });
export default ProtectedPage;
@@ -14,4 +14,4 @@
// app/protected-page/[slug]/page.js
import { AppRouterPageRouteOpts } from '@auth0/nextjs-auth0/server';
import { auth0 } from "@/lib/auth0";
const ProtectedPage = auth0.withPageAuthRequired(async function ProtectedPage({
params, searchParams
}: AppRouterPageRouteOpts) {
const slug = (await params)?.slug as string;
return <div>Protected content for {slug}</div>;
}, {
returnTo({ params }) {
return `/protected-page/${(await params)?.slug}`;
}
});
export default ProtectedPage;
-Optionalopts: WithPageAuthRequiredAppRouterOptions<P>Optionalopts: WithPageAuthRequiredAppRouterOptions<P>Specify the URL to returnTo - this is important in app router pages because the server component
+
Specify the URL to returnTo - this is important in app router pages because the server component
won't know the URL of the page.
*
The type of the page or layout props, extending AppRouterPageRouteOpts.
This allows the returnTo callback to access strongly-typed route parameters.
Wrap your getServerSideProps with this method to make sure the user is authenticated before
+
Wrap your getServerSideProps with this method to make sure the user is authenticated before
visiting the page.
// pages/protected-page.js
import { auth0 } from "@/lib/auth0";
export default function ProtectedPage() {
return <div>Protected content</div>;
}
export const getServerSideProps = auth0.withPageAuthRequired();
If the user visits /protected-page without a valid session, it will redirect the user to the
login page. Then they will be returned to /protected-page after login.
Optionalopts: WithPageAuthRequiredPageRouterOptions<P, Q>Optionalopts: WithPageAuthRequiredPageRouterOptions<P, Q>If you have a custom returnTo url you should specify it in returnTo.
If you have a custom returnTo url you should specify it in returnTo.
You can pass in your own getServerSideProps method, the props returned from this will be
merged with the user props. You can also access the user session data by calling getSession
inside of this method. For example:
// pages/protected-page.js
import { auth0 } from "@/lib/auth0";
export default function ProtectedPage({ user, customProp }) {
return <div>Protected content</div>;
}
export const getServerSideProps = auth0.withPageAuthRequired({
// returnTo: '/unauthorized',
async getServerSideProps(ctx) {
// access the user session if needed
// const session = await auth0.getSession(ctx.req);
return {
props: {
// customProp: 'bar',
}
};
}
});
-Resolves the Auth0 domain from request context. +
Resolves the Auth0 domain from request context. Called once per SDK operation in resolver mode.
Supports both synchronous and asynchronous resolution patterns.
Request headers from the current context. @@ -22,4 +22,4 @@
MFA enrollment options (discriminated union).
-MFA enrollment options (discriminated union).
+MFA enrollment response (discriminated union).
-MFA enrollment response (discriminated union).
+OptionalaudiencePlease note: If you are passing audience, ensure that the used audiences and scopes are part of the Application's Refresh Token Policies in Auth0 when configuring Multi-Resource Refresh Tokens (MRRT). Auth0 Documentation on Multi-resource Refresh Tokens
-OptionalrefreshOptionalscopeOptionalrefreshOptionalscopeLogout strategy options for controlling logout endpoint selection.
-Logout strategy options for controlling logout endpoint selection.
+OptionalappThe resolved base URL for the current request, used to build safe redirects.
-OptionalconnectedThe connected account information when the responseType is RESPONSE_TYPES.CONNECT_CODE
-OptionalresponseThe type of response expected from the authorization server. +
OptionalconnectedThe connected account information when the responseType is RESPONSE_TYPES.CONNECT_CODE
+OptionalresponseThe type of response expected from the authorization server. One of RESPONSE_TYPES
-OptionalreturnThe URL or path the user should be redirected to after completing the transaction.
-OptionalreturnThe URL or path the user should be redirected to after completing the transaction.
+MFA verification options (union type).
-MFA verification options (union type).
+ConstClient-side MFA API singleton.
+ConstClient-side MFA API singleton.
import { mfa } from '@auth0/nextjs-auth0/client';
// List authenticators
const authenticators = await mfa.getAuthenticators({ mfaToken });
// Initiate challenge
const challenge = await mfa.challenge({ mfaToken, challengeType: 'oob' });
// Verify and complete
const tokens = await mfa.verify({ mfaToken, otp: '123456' });
-ConstConstConstDefault claims for the ID token.
-ConstDefault claims for the ID token.
+ConstGrant type for Custom Token Exchange as per RFC 8693.
+ConstGrant type for MFA OOB (SMS/Email/Push) verification.
+ConstGrant type for MFA OOB (SMS/Email/Push) verification.
ConstGrant type for MFA token exchange. +
ConstGrant type for MFA token exchange. Used in token endpoint requests to exchange an mfa_token for access/refresh tokens.
ConstGrant type for MFA recovery code verification.
+ConstGrant type for MFA recovery code verification.
Error class representing an access token for connection error. +
Class AccessTokenForConnectionError
Error class representing an access token for connection error. Extends the
-SdkErrorclass.Hierarchy (View Summary)
Index
Constructors
Hierarchy (View Summary)
Index
Constructors
Properties
Constructors
constructor
code: string,
message: string,
cause?: OAuth2Error,
): AccessTokenForConnectionError
Constructs a new
AccessTokenForConnectionErrorinstance.Parameters
The error code.
The error message.
Optionalcause: OAuth2ErrorThe OAuth2 cause of the error.
-Returns AccessTokenForConnectionError
Properties
Optionalcausecode
The error code associated with the access token error.
-Settings
On This Page
Constructors
Properties
Returns AccessTokenForConnectionError