[{"data":1,"prerenderedAt":1357},["ShallowReactive",2],{"navigation":3,"\u002Fmodules\u002Fendpoints":203,"\u002Fmodules\u002Fendpoints-surround":1352},[4,33,96,114,177],{"title":5,"path":6,"stem":7,"children":8,"icon":32},"Get started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22,27],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Install AuthEndpoints","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-play",{"title":23,"path":24,"stem":25,"icon":26},"Choose a sign-in stack","\u002Fgetting-started\u002Fchoose-a-sign-in-stack","1.getting-started\u002F4.choose-a-sign-in-stack","i-lucide-signpost",{"title":28,"path":29,"stem":30,"icon":31},"Use the AuthEndpoints skill with coding agents","\u002Fgetting-started\u002Fai-agents","1.getting-started\u002F5.ai-agents","i-lucide-bot","i-lucide-rocket",{"title":34,"path":35,"stem":36,"children":37,"icon":95},"Guides","\u002Fguides","2.guides\u002F01.index",[38,40,45,50,55,60,65,70,75,80,85,90],{"title":34,"path":35,"stem":36,"icon":39},"i-lucide-list-checks",{"title":41,"path":42,"stem":43,"icon":44},"Register users","\u002Fguides\u002Fregistration","2.guides\u002F02.registration","i-lucide-user-plus",{"title":46,"path":47,"stem":48,"icon":49},"Sign users in","\u002Fguides\u002Fsign-in","2.guides\u002F03.sign-in","i-lucide-log-in",{"title":51,"path":52,"stem":53,"icon":54},"Sign users out","\u002Fguides\u002Fsign-out","2.guides\u002F04.sign-out","i-lucide-log-out",{"title":56,"path":57,"stem":58,"icon":59},"Turn on two-factor authentication","\u002Fguides\u002Ftwo-factor","2.guides\u002F05.two-factor","i-lucide-smartphone",{"title":61,"path":62,"stem":63,"icon":64},"Reset a forgotten password","\u002Fguides\u002Freset-password","2.guides\u002F06.reset-password","i-lucide-key-round",{"title":66,"path":67,"stem":68,"icon":69},"Change a user's email or password","\u002Fguides\u002Fmanage-account","2.guides\u002F07.manage-account","i-lucide-user-cog",{"title":71,"path":72,"stem":73,"icon":74},"Add, rename, and remove passkeys","\u002Fguides\u002Fmanage-passkeys","2.guides\u002F08.manage-passkeys","i-lucide-scan-face",{"title":76,"path":77,"stem":78,"icon":79},"Link and unlink GitHub or Google accounts","\u002Fguides\u002Flink-external-accounts","2.guides\u002F09.link-external-accounts","i-lucide-link",{"title":81,"path":82,"stem":83,"icon":84},"Require step-up before sensitive actions","\u002Fguides\u002Fstep-up","2.guides\u002F10.step-up","i-lucide-shield-check",{"title":86,"path":87,"stem":88,"icon":89},"Call the API from a browser","\u002Fguides\u002Fbrowser-clients","2.guides\u002F11.browser-clients","i-lucide-globe",{"title":91,"path":92,"stem":93,"icon":94},"Prepare for production","\u002Fguides\u002Fproduction","2.guides\u002F12.production","i-lucide-factory","i-lucide-waypoints",{"title":97,"path":98,"stem":99,"children":100,"icon":113},"Composable endpoints","\u002Fcomposables","3.composables\u002F1.index",[101,104,108],{"title":102,"path":98,"stem":99,"icon":103},"How composition works","i-lucide-layout-grid",{"title":105,"path":106,"stem":107,"icon":39},"Composition requirements","\u002Fcomposables\u002Frequirements","3.composables\u002F2.requirements",{"title":109,"path":110,"stem":111,"icon":112},"Compose a custom auth stack","\u002Fcomposables\u002Frecipes","3.composables\u002F3.recipes","i-lucide-book-marked","i-lucide-blocks",{"title":115,"icon":116,"path":117,"stem":118,"children":119,"page":176},"Reference","i-lucide-book-open","\u002Fmodules","4.modules",[120,125,129,134,139,144,148,153,157,162,166,171],{"title":121,"path":122,"stem":123,"icon":124},"Endpoint reference","\u002Fmodules\u002Fendpoints","4.modules\u002F01.endpoints","i-lucide-route",{"title":126,"path":127,"stem":128,"icon":69},"Identity management module","\u002Fmodules\u002Fidentity-management","4.modules\u002F02.identity-management",{"title":130,"path":131,"stem":132,"icon":133},"Cookie sign-in module","\u002Fmodules\u002Fcookie-auth","4.modules\u002F03.cookie-auth","i-lucide-cookie",{"title":135,"path":136,"stem":137,"icon":138},"Identity bearer sign-in module","\u002Fmodules\u002Fbearer-auth","4.modules\u002F04.bearer-auth","i-lucide-key",{"title":140,"path":141,"stem":142,"icon":143},"JWT module","\u002Fmodules\u002Fjwt","4.modules\u002F05.jwt","i-lucide-fingerprint",{"title":145,"path":146,"stem":147,"icon":74},"Passkeys module","\u002Fmodules\u002Fpasskeys","4.modules\u002F06.passkeys",{"title":149,"path":150,"stem":151,"icon":152},"ReAuth module","\u002Fmodules\u002Freauth","4.modules\u002F07.reauth","i-lucide-shield-alert",{"title":154,"path":155,"stem":156,"icon":49},"External OAuth packages","\u002Fmodules\u002Fexternal-oauth","4.modules\u002F08.external-oauth",{"title":158,"path":159,"stem":160,"icon":161},"Configuration options","\u002Fmodules\u002Fconfiguration","4.modules\u002F09.configuration","i-lucide-settings",{"title":163,"path":164,"stem":165,"icon":84},"Antiforgery (CSRF) rules","\u002Fmodules\u002Fcsrf","4.modules\u002F10.csrf",{"title":167,"path":168,"stem":169,"icon":170},"Responses and errors","\u002Fmodules\u002Ferrors","4.modules\u002F11.errors","i-lucide-circle-alert",{"title":172,"path":173,"stem":174,"icon":175},"Rate-limit policies","\u002Fmodules\u002Frate-limits","4.modules\u002F12.rate-limits","i-lucide-gauge",false,{"title":178,"icon":179,"path":180,"stem":181,"children":182,"page":176},"Concepts","i-lucide-lightbulb","\u002Fconcepts","5.concepts",[183,188,193,198],{"title":184,"path":185,"stem":186,"icon":187},"AuthEndpoints compared with other options","\u002Fconcepts\u002Fcompare","5.concepts\u002F1.compare","i-lucide-git-compare",{"title":189,"path":190,"stem":191,"icon":192},"Stock Identity endpoints vs AuthEndpoints","\u002Fconcepts\u002Fstock-identity-vs-authendpoints","5.concepts\u002F2.stock-identity-vs-authendpoints","i-lucide-columns-2",{"title":194,"path":195,"stem":196,"icon":197},"Security model","\u002Fconcepts\u002Fsecurity-model","5.concepts\u002F3.security-model","i-lucide-shield",{"title":199,"path":200,"stem":201,"icon":202},"FAQ","\u002Fconcepts\u002Ffaq","5.concepts\u002F4.faq","i-lucide-circle-help",{"id":204,"title":121,"body":205,"description":1345,"extension":1346,"links":1347,"meta":1348,"navigation":1349,"path":122,"seo":1350,"stem":123,"__hash__":1351},"docs\u002F4.modules\u002F01.endpoints.md",{"type":206,"value":207,"toc":1334},"minimark",[208,239,242,283,288,298,569,574,578,586,666,670,674,683,760,764,768,787,992,996,1000,1014,1135,1139,1143,1181,1319,1330],[209,210,211,212,216,217,220,221,216,224,227,228,216,231,234,235,238],"p",{},"Paths use the facade defaults: ",[213,214,215],"code",{},"IdentityPath"," is ",[213,218,219],{},"\u002Fidentity",", ",[213,222,223],{},"PasskeyPath",[213,225,226],{},"\u002Faccount",", and ",[213,229,230],{},"Jwt.Path",[213,232,233],{},"\u002Fauth",". External OAuth routes have no default prefix. The table uses ",[213,236,237],{},"\u002Fauth\u002Fexternal",", the prefix from the examples.",[209,240,241],{},"Column meanings:",[243,244,245,253,263,271],"ul",{},[246,247,248,252],"li",{},[249,250,251],"strong",{},"Auth",": the route requires a signed-in user.",[246,254,255,258,259,262],{},[249,256,257],{},"CSRF",": the route runs the antiforgery filter. See ",[260,261,163],"a",{"href":164},".",[246,264,265,268,269,262],{},[249,266,267],{},"ReAuth",": the route requires a fresh step-up proof. See ",[260,270,149],{"href":150},[246,272,273,276,277,280,281,262],{},[249,274,275],{},"Rate limit",": the policy name without the ",[213,278,279],{},"AuthEndpoints."," prefix. See ",[260,282,172],{"href":173},[284,285,287],"h2",{"id":286},"identity-management","Identity management",[209,289,290,291,294,295,297],{},"Mapped by ",[213,292,293],{},"MapIdentityManagementApi",". The facade always maps it under ",[213,296,215],{},". Management routes accept the application cookie, Identity bearer tokens, and JWT bearer tokens, when those schemes are registered.",[299,300,301,322],"table",{},[302,303,304],"thead",{},[305,306,307,311,314,316,318,320],"tr",{},[308,309,310],"th",{},"Method",[308,312,313],{},"Path",[308,315,251],{},[308,317,257],{},[308,319,267],{},[308,321,275],{},[323,324,325,349,369,391,412,433,455,476,495,514,532,551],"tbody",{},[305,326,327,333,338,340,342,344],{},[328,329,330],"td",{},[213,331,332],{},"POST",[328,334,335],{},[213,336,337],{},"\u002Fidentity\u002Fregister",[328,339],{},[328,341],{},[328,343],{},[328,345,346],{},[213,347,348],{},"AccountAbuse",[305,350,351,356,361,363,365,367],{},[328,352,353],{},[213,354,355],{},"GET",[328,357,358],{},[213,359,360],{},"\u002Fidentity\u002FconfirmEmail",[328,362],{},[328,364],{},[328,366],{},[328,368],{},[305,370,371,375,380,383,385,387],{},[328,372,373],{},[213,374,332],{},[328,376,377],{},[213,378,379],{},"\u002Fidentity\u002FresendConfirmationEmail",[328,381,382],{},"Yes",[328,384,382],{},[328,386],{},[328,388,389],{},[213,390,348],{},[305,392,393,397,402,404,406,408],{},[328,394,395],{},[213,396,332],{},[328,398,399],{},[213,400,401],{},"\u002Fidentity\u002FforgotPassword",[328,403],{},[328,405],{},[328,407],{},[328,409,410],{},[213,411,348],{},[305,413,414,418,423,425,427,429],{},[328,415,416],{},[213,417,332],{},[328,419,420],{},[213,421,422],{},"\u002Fidentity\u002FresetPassword",[328,424],{},[328,426],{},[328,428],{},[328,430,431],{},[213,432,348],{},[305,434,435,439,444,446,448,450],{},[328,436,437],{},[213,438,332],{},[328,440,441],{},[213,442,443],{},"\u002Fidentity\u002FconfirmIdentity",[328,445,382],{},[328,447,382],{},[328,449],{},[328,451,452],{},[213,453,454],{},"ConfirmIdentity",[305,456,457,461,466,468,470,472],{},[328,458,459],{},[213,460,332],{},[328,462,463],{},[213,464,465],{},"\u002Fidentity\u002FconfirmIdentity\u002FpasskeyOptions",[328,467,382],{},[328,469,382],{},[328,471],{},[328,473,474],{},[213,475,454],{},[305,477,478,482,487,489,491,493],{},[328,479,480],{},[213,481,355],{},[328,483,484],{},[213,485,486],{},"\u002Fidentity\u002Fmanage\u002FauthMethods",[328,488,382],{},[328,490],{},[328,492],{},[328,494],{},[305,496,497,501,506,508,510,512],{},[328,498,499],{},[213,500,355],{},[328,502,503],{},[213,504,505],{},"\u002Fidentity\u002Fmanage\u002F2fa",[328,507,382],{},[328,509],{},[328,511],{},[328,513],{},[305,515,516,520,524,526,528,530],{},[328,517,518],{},[213,519,332],{},[328,521,522],{},[213,523,505],{},[328,525,382],{},[328,527,382],{},[328,529,382],{},[328,531],{},[305,533,534,538,543,545,547,549],{},[328,535,536],{},[213,537,355],{},[328,539,540],{},[213,541,542],{},"\u002Fidentity\u002Fmanage\u002Finfo",[328,544,382],{},[328,546],{},[328,548],{},[328,550],{},[305,552,553,557,561,563,565,567],{},[328,554,555],{},[213,556,332],{},[328,558,559],{},[213,560,542],{},[328,562,382],{},[328,564,382],{},[328,566,382],{},[328,568],{},[209,570,571,572,262],{},"Details: ",[260,573,126],{"href":127},[284,575,577],{"id":576},"cookie-sign-in","Cookie sign-in",[209,579,290,580,583,584,262],{},[213,581,582],{},"MapCookieAuthEndpoints",". The cookie facade maps it under ",[213,585,215],{},[299,587,588,604],{},[302,589,590],{},[305,591,592,594,596,598,600,602],{},[308,593,310],{},[308,595,313],{},[308,597,251],{},[308,599,257],{},[308,601,267],{},[308,603,275],{},[323,605,606,628,647],{},[305,607,608,612,617,619,621,623],{},[328,609,610],{},[213,611,332],{},[328,613,614],{},[213,615,616],{},"\u002Fidentity\u002Flogin",[328,618],{},[328,620],{},[328,622],{},[328,624,625],{},[213,626,627],{},"Login",[305,629,630,634,639,641,643,645],{},[328,631,632],{},[213,633,332],{},[328,635,636],{},[213,637,638],{},"\u002Fidentity\u002Flogout",[328,640,382],{},[328,642,382],{},[328,644],{},[328,646],{},[305,648,649,653,658,660,662,664],{},[328,650,651],{},[213,652,355],{},[328,654,655],{},[213,656,657],{},"\u002Fidentity\u002FcsrfToken",[328,659],{},[328,661],{},[328,663],{},[328,665],{},[209,667,571,668,262],{},[260,669,130],{"href":131},[284,671,673],{"id":672},"identity-bearer-sign-in","Identity bearer sign-in",[209,675,290,676,679,680,682],{},[213,677,678],{},"MapBearerAuthEndpoints",". The bearer facade maps it under ",[213,681,215],{}," instead of cookie sign-in.",[299,684,685,701],{},[302,686,687],{},[305,688,689,691,693,695,697,699],{},[308,690,310],{},[308,692,313],{},[308,694,251],{},[308,696,257],{},[308,698,267],{},[308,700,275],{},[323,702,703,723,742],{},[305,704,705,709,713,715,717,719],{},[328,706,707],{},[213,708,332],{},[328,710,711],{},[213,712,616],{},[328,714],{},[328,716],{},[328,718],{},[328,720,721],{},[213,722,627],{},[305,724,725,729,734,736,738,740],{},[328,726,727],{},[213,728,332],{},[328,730,731],{},[213,732,733],{},"\u002Fidentity\u002Frefresh",[328,735],{},[328,737],{},[328,739],{},[328,741],{},[305,743,744,748,752,754,756,758],{},[328,745,746],{},[213,747,332],{},[328,749,750],{},[213,751,638],{},[328,753,382],{},[328,755],{},[328,757],{},[328,759],{},[209,761,571,762,262],{},[260,763,135],{"href":136},[284,765,767],{"id":766},"passkeys","Passkeys",[209,769,290,770,773,774,777,778,780,781,216,784,262],{},[213,771,772],{},"MapPasskeyEndpoints"," under ",[213,775,776],{},"{prefix}\u002Fpasskeys",". The facade maps it under ",[213,779,223],{}," unless ",[213,782,783],{},"Passkeys.Enabled",[213,785,786],{},"false",[299,788,789,805],{},[302,790,791],{},[305,792,793,795,797,799,801,803],{},[308,794,310],{},[308,796,313],{},[308,798,251],{},[308,800,257],{},[308,802,267],{},[308,804,275],{},[323,806,807,829,850,871,893,914,935,953,972],{},[305,808,809,813,818,820,822,824],{},[328,810,811],{},[213,812,332],{},[328,814,815],{},[213,816,817],{},"\u002Faccount\u002Fpasskeys\u002FcreationOptions",[328,819,382],{},[328,821,382],{},[328,823,382],{},[328,825,826],{},[213,827,828],{},"Passkey.ObtainOptions",[305,830,831,835,840,842,844,846],{},[328,832,833],{},[213,834,332],{},[328,836,837],{},[213,838,839],{},"\u002Faccount\u002Fpasskeys\u002FrequestOptions",[328,841],{},[328,843,382],{},[328,845],{},[328,847,848],{},[213,849,828],{},[305,851,852,856,861,863,865,867],{},[328,853,854],{},[213,855,332],{},[328,857,858],{},[213,859,860],{},"\u002Faccount\u002Fpasskeys\u002Fregister\u002Foptions",[328,862],{},[328,864,382],{},[328,866],{},[328,868,869],{},[213,870,828],{},[305,872,873,877,882,884,886,888],{},[328,874,875],{},[213,876,332],{},[328,878,879],{},[213,880,881],{},"\u002Faccount\u002Fpasskeys\u002Fregister",[328,883],{},[328,885,382],{},[328,887],{},[328,889,890],{},[213,891,892],{},"Passkey.Register",[305,894,895,899,904,906,908,910],{},[328,896,897],{},[213,898,332],{},[328,900,901],{},[213,902,903],{},"\u002Faccount\u002Fpasskeys\u002Flogin",[328,905],{},[328,907,382],{},[328,909],{},[328,911,912],{},[213,913,627],{},[305,915,916,920,925,927,929,931],{},[328,917,918],{},[213,919,332],{},[328,921,922],{},[213,923,924],{},"\u002Faccount\u002Fpasskeys\u002F",[328,926,382],{},[328,928,382],{},[328,930,382],{},[328,932,933],{},[213,934,892],{},[305,936,937,941,945,947,949,951],{},[328,938,939],{},[213,940,355],{},[328,942,943],{},[213,944,924],{},[328,946,382],{},[328,948],{},[328,950],{},[328,952],{},[305,954,955,960,964,966,968,970],{},[328,956,957],{},[213,958,959],{},"PATCH",[328,961,962],{},[213,963,924],{},[328,965,382],{},[328,967,382],{},[328,969,382],{},[328,971],{},[305,973,974,979,984,986,988,990],{},[328,975,976],{},[213,977,978],{},"DELETE",[328,980,981],{},[213,982,983],{},"\u002Faccount\u002Fpasskeys\u002F{credentialIdUrl}",[328,985,382],{},[328,987,382],{},[328,989,382],{},[328,991],{},[209,993,571,994,262],{},[260,995,145],{"href":146},[284,997,999],{"id":998},"jwt","JWT",[209,1001,290,1002,777,1005,1007,1008,216,1011,262],{},[213,1003,1004],{},"MapJwtAuthEndpoints",[213,1006,230],{}," when ",[213,1009,1010],{},"Jwt.Enabled",[213,1012,1013],{},"true",[299,1015,1016,1032],{},[302,1017,1018],{},[305,1019,1020,1022,1024,1026,1028,1030],{},[308,1021,310],{},[308,1023,313],{},[308,1025,251],{},[308,1027,257],{},[308,1029,267],{},[308,1031,275],{},[323,1033,1034,1055,1077,1097,1116],{},[305,1035,1036,1040,1045,1047,1049,1051],{},[328,1037,1038],{},[213,1039,332],{},[328,1041,1042],{},[213,1043,1044],{},"\u002Fauth\u002Fcreate",[328,1046],{},[328,1048],{},[328,1050],{},[328,1052,1053],{},[213,1054,627],{},[305,1056,1057,1061,1066,1069,1071,1073],{},[328,1058,1059],{},[213,1060,332],{},[328,1062,1063],{},[213,1064,1065],{},"\u002Fauth\u002Frefresh",[328,1067,1068],{},"Refresh cookie",[328,1070,382],{},[328,1072],{},[328,1074,1075],{},[213,1076,627],{},[305,1078,1079,1083,1088,1091,1093,1095],{},[328,1080,1081],{},[213,1082,355],{},[328,1084,1085],{},[213,1086,1087],{},"\u002Fauth\u002Fverify",[328,1089,1090],{},"JWT bearer",[328,1092],{},[328,1094],{},[328,1096],{},[305,1098,1099,1103,1108,1110,1112,1114],{},[328,1100,1101],{},[213,1102,332],{},[328,1104,1105],{},[213,1106,1107],{},"\u002Fauth\u002Flogout",[328,1109],{},[328,1111,382],{},[328,1113],{},[328,1115],{},[305,1117,1118,1122,1127,1129,1131,1133],{},[328,1119,1120],{},[213,1121,355],{},[328,1123,1124],{},[213,1125,1126],{},"\u002Fauth\u002FcsrfToken",[328,1128],{},[328,1130],{},[328,1132],{},[328,1134],{},[209,1136,571,1137,262],{},[260,1138,140],{"href":141},[284,1140,1142],{"id":1141},"external-oauth","External OAuth",[209,1144,290,1145,220,1148,220,1151,220,1154,227,1157,1160,1161,216,1164,1167,1168,1171,1172,216,1175,1167,1178,262],{},[213,1146,1147],{},"MapGitHubAuthEndpoints",[213,1149,1150],{},"MapGoogleAuthEndpoints",[213,1152,1153],{},"MapExternalAuthEndpoints",[213,1155,1156],{},"MapExternalAuthProvider",[213,1158,1159],{},"MapExternalAccountEndpoints",". The facade never maps these routes. ",[213,1162,1163],{},"{provider}",[213,1165,1166],{},"github"," or ",[213,1169,1170],{},"google",". ",[213,1173,1174],{},"{scheme}",[213,1176,1177],{},"GitHub",[213,1179,1180],{},"Google",[299,1182,1183,1199],{},[302,1184,1185],{},[305,1186,1187,1189,1191,1193,1195,1197],{},[308,1188,310],{},[308,1190,313],{},[308,1192,251],{},[308,1194,257],{},[308,1196,267],{},[308,1198,275],{},[323,1200,1201,1222,1241,1260,1279,1300],{},[305,1202,1203,1207,1212,1214,1216,1218],{},[328,1204,1205],{},[213,1206,355],{},[328,1208,1209],{},[213,1210,1211],{},"\u002Fauth\u002Fexternal\u002Flogin\u002F{provider}",[328,1213],{},[328,1215],{},[328,1217],{},[328,1219,1220],{},[213,1221,627],{},[305,1223,1224,1228,1233,1235,1237,1239],{},[328,1225,1226],{},[213,1227,355],{},[328,1229,1230],{},[213,1231,1232],{},"\u002Fauth\u002Fexternal\u002Flogin\u002F{provider}\u002Fcallback",[328,1234],{},[328,1236],{},[328,1238],{},[328,1240],{},[305,1242,1243,1247,1252,1254,1256,1258],{},[328,1244,1245],{},[213,1246,355],{},[328,1248,1249],{},[213,1250,1251],{},"\u002Fauth\u002Fexternal\u002Flogins",[328,1253,382],{},[328,1255],{},[328,1257],{},[328,1259],{},[305,1261,1262,1266,1271,1273,1275,1277],{},[328,1263,1264],{},[213,1265,978],{},[328,1267,1268],{},[213,1269,1270],{},"\u002Fauth\u002Fexternal\u002Flogins\u002F{loginProvider}\u002F{providerKey}",[328,1272,382],{},[328,1274,382],{},[328,1276,382],{},[328,1278],{},[305,1280,1281,1285,1290,1292,1294,1296],{},[328,1282,1283],{},[213,1284,355],{},[328,1286,1287],{},[213,1288,1289],{},"\u002Fauth\u002Fexternal\u002Flink\u002F{scheme}",[328,1291,382],{},[328,1293],{},[328,1295],{},[328,1297,1298],{},[213,1299,627],{},[305,1301,1302,1306,1311,1313,1315,1317],{},[328,1303,1304],{},[213,1305,355],{},[328,1307,1308],{},[213,1309,1310],{},"\u002Fauth\u002Fexternal\u002Flink\u002F{scheme}\u002Fcallback",[328,1312,382],{},[328,1314],{},[328,1316],{},[328,1318],{},[209,1320,1321,1322,1325,1326,1329],{},"The OAuth handlers also own ",[213,1323,1324],{},"\u002Fsignin-github"," and ",[213,1327,1328],{},"\u002Fsignin-google",". Register those callback paths with each provider.",[209,1331,571,1332,262],{},[260,1333,154],{"href":155},{"title":1335,"searchDepth":1336,"depth":1337,"links":1338},"",1,2,[1339,1340,1341,1342,1343,1344],{"id":286,"depth":1337,"text":287},{"id":576,"depth":1337,"text":577},{"id":672,"depth":1337,"text":673},{"id":766,"depth":1337,"text":767},{"id":998,"depth":1337,"text":999},{"id":1141,"depth":1337,"text":1142},"Every route that AuthEndpoints maps, with its auth, CSRF, ReAuth, and rate-limit requirements.","md",null,{},{"icon":124},{"title":121,"description":1345},"UiSGdGscQ48KJQWP7XSIfwX3KLDesmlBnIrL8J5OPNE",[1353,1355],{"title":109,"path":110,"stem":111,"description":1354,"icon":112,"children":-1},"Common composition patterns for cookie web clients, Identity bearer, JWT-only, and custom paths.",{"title":126,"path":127,"stem":128,"description":1356,"icon":69,"children":-1},"Account lifecycle endpoints — register, confirm, forgot\u002Freset password, manage info and 2FA.",1791096171695]