[{"data":1,"prerenderedAt":974},["ShallowReactive",2],{"navigation":3,"\u002Fsecurity\u002Ftwo-factor-and-devices":395,"\u002Fsecurity\u002Ftwo-factor-and-devices-surround":969},[4,23,53,78,107,142,166,202,238,277,306,361],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Usage","\u002Fgetting-started\u002Fusage","1.getting-started\u002F3.usage","i-lucide-sliders",{"title":18,"path":19,"stem":20,"icon":21},"Signing in on the mobile app","\u002Fgetting-started\u002Fmobile-app-sign-in","1.getting-started\u002F4.mobile-app-sign-in","i-lucide-smartphone",false,{"title":24,"icon":22,"path":25,"stem":26,"children":27,"page":22},"Billing & Plans","\u002Fbilling","10.billing",[28,33,38,43,48],{"title":29,"path":30,"stem":31,"icon":32},"Plans","\u002Fbilling\u002Fplans","10.billing\u002F1.plans","i-lucide-credit-card",{"title":34,"path":35,"stem":36,"icon":37},"Limits & Usage","\u002Fbilling\u002Flimits-and-usage","10.billing\u002F2.limits-and-usage","i-lucide-gauge",{"title":39,"path":40,"stem":41,"icon":42},"Managing Your Subscription","\u002Fbilling\u002Fmanaging-your-subscription","10.billing\u002F3.managing-your-subscription","i-lucide-receipt",{"title":44,"path":45,"stem":46,"icon":47},"Add-ons","\u002Fbilling\u002Fadd-ons","10.billing\u002F4.add-ons","i-lucide-puzzle",{"title":49,"path":50,"stem":51,"icon":52},"Integrations","\u002Fbilling\u002Fintegrations","10.billing\u002F5.integrations","i-lucide-plug",{"title":54,"icon":22,"path":55,"stem":56,"children":57,"page":22},"Settings","\u002Fsettings","11.settings",[58,62,66,70,74],{"title":59,"path":60,"stem":61},"General","\u002Fsettings\u002Fgeneral","11.settings\u002F1.general",{"title":63,"path":64,"stem":65},"Leave Types","\u002Fsettings\u002Fleavetype","11.settings\u002F2.leaveType",{"title":67,"path":68,"stem":69},"Carry Forward","\u002Fsettings\u002Fcarryforward","11.settings\u002F3.carryForward",{"title":71,"path":72,"stem":73},"Department Management","\u002Fsettings\u002Fdepartments","11.settings\u002F4.departments",{"title":75,"path":76,"stem":77},"Public Holidays","\u002Fsettings\u002Fpublicholiday","11.settings\u002F5.publicholiday",{"title":79,"path":80,"stem":81,"children":82,"page":22},"Mcp","\u002Fmcp","12.mcp",[83,88,92,97,102],{"title":84,"path":85,"stem":86,"icon":87},"Overview","\u002Fmcp\u002Foverview","12.mcp\u002F1.overview","i-lucide-bot",{"title":89,"path":90,"stem":91,"icon":52},"Connecting","\u002Fmcp\u002Fconnecting","12.mcp\u002F2.connecting",{"title":93,"path":94,"stem":95,"icon":96},"Tools Reference","\u002Fmcp\u002Ftools","12.mcp\u002F3.tools","i-lucide-wrench",{"title":98,"path":99,"stem":100,"icon":101},"Security","\u002Fmcp\u002Fsecurity","12.mcp\u002F4.security","i-lucide-shield",{"title":103,"path":104,"stem":105,"icon":106},"Integrating Your Own MCP Client","\u002Fmcp\u002Fcustom-client","12.mcp\u002F5.custom-client","i-lucide-code",{"title":108,"icon":22,"path":109,"stem":110,"children":111,"page":22},"Leave Management","\u002Fleave-management","2.leave-management",[112,117,122,127,132,137],{"title":113,"path":114,"stem":115,"icon":116},"Leave Management Overview","\u002Fleave-management\u002Foverview","2.leave-management\u002F1.overview","i-lucide-palmtree",{"title":118,"path":119,"stem":120,"icon":121},"Requesting Leave","\u002Fleave-management\u002Frequesting-leave","2.leave-management\u002F2.requesting-leave","i-lucide-calendar-plus",{"title":123,"path":124,"stem":125,"icon":126},"Leave Balances","\u002Fleave-management\u002Fleave-balances","2.leave-management\u002F3.leave-balances","i-lucide-wallet",{"title":128,"path":129,"stem":130,"icon":131},"Group Booking","\u002Fleave-management\u002Fgroup-booking","2.leave-management\u002F4.group-booking","i-lucide-users",{"title":133,"path":134,"stem":135,"icon":136},"Editing and Cancelling Leave","\u002Fleave-management\u002Fediting-and-cancelling","2.leave-management\u002F5.editing-and-cancelling","i-lucide-pencil",{"title":138,"path":139,"stem":140,"icon":141},"Leave Troubleshooting","\u002Fleave-management\u002Ftroubleshooting","2.leave-management\u002F6.troubleshooting","i-lucide-life-buoy",{"title":143,"icon":22,"path":144,"stem":145,"children":146,"page":22},"Approvals","\u002Fapprovals","3.approvals",[147,152,157,161],{"title":148,"path":149,"stem":150,"icon":151},"Approvals Overview","\u002Fapprovals\u002Foverview","3.approvals\u002F1.overview","i-lucide-check-check",{"title":153,"path":154,"stem":155,"icon":156},"Leave Approvals","\u002Fapprovals\u002Fleave-approvals","3.approvals\u002F2.leave-approvals","i-lucide-calendar-check",{"title":158,"path":159,"stem":160,"icon":42},"Expense Approvals","\u002Fapprovals\u002Fexpense-approvals","3.approvals\u002F3.expense-approvals",{"title":162,"path":163,"stem":164,"icon":165},"Time Approvals","\u002Fapprovals\u002Ftime-approvals","3.approvals\u002F4.time-approvals","i-lucide-clock-9",{"title":167,"icon":22,"path":168,"stem":169,"children":170,"page":22},"Time tracking & monitoring","\u002Ftime-tracking","4.Time Tracking",[171,176,181,186,190,194,198],{"title":172,"path":173,"stem":174,"icon":175},"Clocking In & Location","\u002Ftime-tracking\u002Fclock-in-and-location","4.Time Tracking\u002F5.clock-in-and-location","i-lucide-map-pin",{"title":177,"path":178,"stem":179,"icon":180},"Overtime & Pay-Period Lockdown","\u002Ftime-tracking\u002Fovertime-and-lockdown","4.Time Tracking\u002F6.overtime-and-lockdown","i-lucide-lock",{"title":182,"path":183,"stem":184,"icon":185},"Geofencing","\u002Ftime-tracking\u002Fgeofencing","4.Time Tracking\u002F7.geofencing","i-lucide-map",{"title":187,"path":188,"stem":189},"Time & Projects","\u002Ftime-tracking\u002Ftimeandprojects","4.Time Tracking\u002FTime&Projects",{"title":191,"path":192,"stem":193},"Time Tracking","\u002Ftime-tracking\u002Ftime-tracking","4.Time Tracking\u002FTime-tracking",{"title":195,"path":196,"stem":197},"Timeboard","\u002Ftime-tracking\u002Ftimeboard","4.Time Tracking\u002FTimeBoard",{"title":199,"path":200,"stem":201},"Timesheets","\u002Ftime-tracking\u002Ftimesheets","4.Time Tracking\u002FTimesheets",{"title":203,"icon":22,"path":204,"stem":205,"children":206,"page":22},"Expenses","\u002Fexpenses","5.expenses",[207,211,215,219,223,228,233],{"title":208,"path":209,"stem":210},"Expense Claims","\u002Fexpenses\u002Foverview","5.expenses\u002F1.overview",{"title":212,"path":213,"stem":214},"Add & Manage Purchases","\u002Fexpenses\u002Fpurchases","5.expenses\u002F2.purchases",{"title":216,"path":217,"stem":218},"Travel & Mileage Entry","\u002Fexpenses\u002Ftravelentries","5.expenses\u002F3.travelentries",{"title":220,"path":221,"stem":222,"icon":32},"Company Card Expenses","\u002Fexpenses\u002Fcompany-cards","5.expenses\u002F4.company-cards",{"title":224,"path":225,"stem":226,"icon":227},"Per Diems","\u002Fexpenses\u002Fper-diems","5.expenses\u002F5.per-diems","i-lucide-utensils",{"title":229,"path":230,"stem":231,"icon":232},"Receipt Scanning","\u002Fexpenses\u002Freceipt-scanning","5.expenses\u002F6.receipt-scanning","i-lucide-scan-line",{"title":234,"path":235,"stem":236,"icon":237},"Statuses & Submission","\u002Fexpenses\u002Fstatuses-and-submission","5.expenses\u002F7.statuses-and-submission","i-lucide-git-pull-request-arrow",{"title":239,"icon":22,"path":240,"stem":241,"children":242,"page":22},"Documents & E-Signatures","\u002Fdocuments","6.documents",[243,247,252,257,262,267,272],{"title":84,"path":244,"stem":245,"icon":246},"\u002Fdocuments\u002Foverview","6.documents\u002F1.overview","i-lucide-folder-open",{"title":248,"path":249,"stem":250,"icon":251},"Uploading Documents","\u002Fdocuments\u002Fuploading","6.documents\u002F2.uploading","i-lucide-upload",{"title":253,"path":254,"stem":255,"icon":256},"E-Signatures","\u002Fdocuments\u002Fe-signatures","6.documents\u002F3.e-signatures","i-lucide-pen-tool",{"title":258,"path":259,"stem":260,"icon":261},"Audit Trail & Certificate","\u002Fdocuments\u002Faudit-trail","6.documents\u002F4.audit-trail","i-lucide-file-check",{"title":263,"path":264,"stem":265,"icon":266},"Templates & Bulk Send","\u002Fdocuments\u002Ftemplates-and-bulk-send","6.documents\u002F5.templates-and-bulk-send","i-lucide-layout-template",{"title":268,"path":269,"stem":270,"icon":271},"Onboarding","\u002Fdocuments\u002Fonboarding","6.documents\u002F6.onboarding","i-lucide-user-plus",{"title":273,"path":274,"stem":275,"icon":276},"Offboarding","\u002Fdocuments\u002Foffboarding","6.documents\u002F7.offboarding","i-lucide-user-minus",{"title":278,"icon":22,"path":279,"stem":280,"children":281,"page":22},"People & HR","\u002Fpeople","7.people",[282,286,291,296,301],{"title":283,"path":284,"stem":285,"icon":131},"Directory & Profiles","\u002Fpeople\u002Fdirectory-and-profiles","7.people\u002F1.directory-and-profiles",{"title":287,"path":288,"stem":289,"icon":290},"Managing Users","\u002Fpeople\u002Fmanaging-users","7.people\u002F2.managing-users","i-lucide-user-cog",{"title":292,"path":293,"stem":294,"icon":295},"HR Records","\u002Fpeople\u002Fhr-records","7.people\u002F3.hr-records","i-lucide-folder-archive",{"title":297,"path":298,"stem":299,"icon":300},"Performance","\u002Fpeople\u002Fperformance","7.people\u002F4.performance","i-lucide-target",{"title":302,"path":303,"stem":304,"icon":305},"Training","\u002Fpeople\u002Ftraining","7.people\u002F5.training","i-lucide-graduation-cap",{"title":307,"icon":22,"path":308,"stem":309,"children":310,"page":22},"Features","\u002Ffeatures","8.features",[311,315,319,324,329,333,337,341,345,349,353,357],{"title":312,"path":313,"stem":314},"Dashboard","\u002Ffeatures\u002Fdashboard","8.features\u002F1.dashboard",{"title":316,"path":317,"stem":318},"SMTP troubleshoot","\u002Ffeatures\u002Fsmtp-troubleshoot","8.features\u002F10.smtp-troubleshoot",{"title":320,"path":321,"stem":322,"icon":323},"Notifications","\u002Ffeatures\u002Fnotifications","8.features\u002F11.notifications","i-lucide-bell",{"title":325,"path":326,"stem":327,"icon":328},"Reports","\u002Ffeatures\u002Freports","8.features\u002F12.reports","i-lucide-bar-chart-3",{"title":330,"path":331,"stem":332},"Calendar & Leave Overview","\u002Ffeatures\u002Fcalendar","8.features\u002F2.calendar",{"title":334,"path":335,"stem":336},"Calendar Integration","\u002Ffeatures\u002Fcalendar-integration","8.features\u002F3.calendar-integration",{"title":338,"path":339,"stem":340},"Schedules","\u002Ffeatures\u002Fschedules","8.features\u002F4.schedules",{"title":342,"path":343,"stem":344},"Project Management","\u002Ffeatures\u002Fprojects","8.features\u002F5.projects",{"title":346,"path":347,"stem":348},"Expense Settings","\u002Ffeatures\u002Fexpense-settings","8.features\u002F6.expense-settings",{"title":350,"path":351,"stem":352},"Auth0 SSO Integration","\u002Ffeatures\u002Fauth0-integration","8.features\u002F7.auth0-integration",{"title":354,"path":355,"stem":356},"Password & Authentication Policy","\u002Ffeatures\u002Fpolicies","8.features\u002F8.policies",{"title":358,"path":359,"stem":360},"Email Configuration (SMTP)","\u002Ffeatures\u002Femail-configuration","8.features\u002F9.email-configuration",{"title":362,"icon":22,"path":363,"stem":364,"children":365,"page":22},"Security & Privacy","\u002Fsecurity","9.security",[366,371,376,380,385,390],{"title":367,"path":368,"stem":369,"icon":370},"Security Overview","\u002Fsecurity\u002Foverview","9.security\u002F1.overview","i-lucide-shield-check",{"title":372,"path":373,"stem":374,"icon":375},"Authentication","\u002Fsecurity\u002Fauthentication","9.security\u002F2.authentication","i-lucide-log-in",{"title":377,"path":378,"stem":379,"icon":21},"Two-Factor & Devices","\u002Fsecurity\u002Ftwo-factor-and-devices","9.security\u002F3.two-factor-and-devices",{"title":381,"path":382,"stem":383,"icon":384},"Audit & Monitoring","\u002Fsecurity\u002Faudit-and-monitoring","9.security\u002F4.audit-and-monitoring","i-lucide-scroll-text",{"title":386,"path":387,"stem":388,"icon":389},"Account Deletion & Privacy","\u002Fsecurity\u002Faccount-deletion-and-privacy","9.security\u002F5.account-deletion-and-privacy","i-lucide-user-x",{"title":391,"path":392,"stem":393,"icon":394},"Roles & Permissions","\u002Fsecurity\u002Froles-and-permissions","9.security\u002F6.roles-and-permissions","i-lucide-key-round",{"id":396,"title":377,"body":397,"description":962,"extension":963,"links":964,"meta":965,"navigation":966,"path":378,"seo":967,"stem":379,"__hash__":968},"docs\u002F9.security\u002F3.two-factor-and-devices.md",{"type":398,"value":399,"toc":949},"minimark",[400,405,418,423,440,443,497,504,514,519,535,538,542,549,598,601,616,671,674,677,703,707,722,732,736,739,781,785,833,836,846,850,945],[401,402,404],"h1",{"id":403},"two-factor-authentication-trusted-devices","Two-Factor Authentication & Trusted Devices",[406,407,408,409,413,414,417],"p",{},"Two-factor authentication (2FA) adds a second step to login: after your password, you enter a rotating 6-digit code from an authenticator app. BookYourPTO uses ",[410,411,412],"strong",{},"TOTP"," (the standard behind Google Authenticator, Authy, 1Password, etc.). Your organization may make 2FA ",[410,415,416],{},"mandatory"," — if so, you'll be forced to set it up before you can continue.",[419,420,422],"h2",{"id":421},"setting-up-2fa","Setting up 2FA",[424,425,430],"pre",{"className":426,"code":427,"language":428,"meta":429,"style":429},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","POST \u002Fapi\u002Fauth\u002Ftotp\u002Fsetup\n","http","",[431,432,433],"code",{"__ignoreMap":429},[434,435,438],"span",{"class":436,"line":437},"line",1,[434,439,427],{},[406,441,442],{},"The response gives you three things:",[444,445,446,459],"table",{},[447,448,449],"thead",{},[450,451,452,456],"tr",{},[453,454,455],"th",{},"Item",[453,457,458],{},"Use",[460,461,462,473,483],"tbody",{},[450,463,464,470],{},[465,466,467],"td",{},[410,468,469],{},"QR code",[465,471,472],{},"Scan it with your authenticator app.",[450,474,475,480],{},[465,476,477],{},[410,478,479],{},"Base32 secret",[465,481,482],{},"Type it in manually if you can't scan.",[450,484,485,490],{},[465,486,487],{},[410,488,489],{},"Backup codes",[465,491,492,493,496],{},"One-time codes shown ",[410,494,495],{},"once"," — save them now.",[406,498,499,500,503],{},"A limited ",[410,501,502],{},"setup window"," applies: confirm before it lapses or you'll need to start over.",[505,506,508],"callout",{"color":507,"icon":101},"amber",[406,509,510,513],{},[410,511,512],{},"Save your backup codes immediately."," They are shown only once and stored only as hashes — BookYourPTO cannot show them to you again. They're your way back in if you lose your authenticator.",[515,516,518],"h3",{"id":517},"confirming-setup","Confirming setup",[424,520,522],{"className":426,"code":521,"language":428,"meta":429,"style":429},"POST \u002Fapi\u002Fauth\u002Ftotp\u002Fconfirm\n{ \"code\": \"123456\" }\n",[431,523,524,529],{"__ignoreMap":429},[434,525,526],{"class":436,"line":437},[434,527,528],{},"POST \u002Fapi\u002Fauth\u002Ftotp\u002Fconfirm\n",[434,530,532],{"class":436,"line":531},2,[434,533,534],{},"{ \"code\": \"123456\" }\n",[406,536,537],{},"Entering a valid code enables 2FA and issues fresh tokens. From now on, login requires your second factor.",[419,539,541],{"id":540},"logging-in-with-2fa","Logging in with 2FA",[406,543,544,545,548],{},"If 2FA is enabled and your device ",[410,546,547],{},"isn't trusted",", login returns a challenge instead of tokens:",[424,550,554],{"className":551,"code":552,"language":553,"meta":429,"style":429},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ \"requiresTwoFactor\": true, \"twoFactorToken\": \"\u003Cshort-lived token>\" }\n","json",[431,555,556],{"__ignoreMap":429},[434,557,558,562,565,569,572,575,578,580,583,585,587,589,593,595],{"class":436,"line":437},[434,559,561],{"class":560},"sMK4o","{",[434,563,564],{"class":560}," \"",[434,566,568],{"class":567},"spNyl","requiresTwoFactor",[434,570,571],{"class":560},"\"",[434,573,574],{"class":560},":",[434,576,577],{"class":560}," true,",[434,579,564],{"class":560},[434,581,582],{"class":567},"twoFactorToken",[434,584,571],{"class":560},[434,586,574],{"class":560},[434,588,564],{"class":560},[434,590,592],{"class":591},"sfazB","\u003Cshort-lived token>",[434,594,571],{"class":560},[434,596,597],{"class":560}," }\n",[406,599,600],{},"Complete it before the short challenge window lapses:",[424,602,604],{"className":426,"code":603,"language":428,"meta":429,"style":429},"POST \u002Fapi\u002Fauth\u002Ftotp\u002Fverify\n{ \"code\": \"123456\", \"twoFactorToken\": \"...\", \"rememberDevice\": true }\n",[431,605,606,611],{"__ignoreMap":429},[434,607,608],{"class":436,"line":437},[434,609,610],{},"POST \u002Fapi\u002Fauth\u002Ftotp\u002Fverify\n",[434,612,613],{"class":436,"line":531},[434,614,615],{},"{ \"code\": \"123456\", \"twoFactorToken\": \"...\", \"rememberDevice\": true }\n",[444,617,618,628],{},[447,619,620],{},[450,621,622,625],{},[453,623,624],{},"Field",[453,626,627],{},"Notes",[460,629,630,652,661],{},[450,631,632,636],{},[465,633,634],{},[431,635,431],{},[465,637,638,639,642,643,647,648,651],{},"A current ",[410,640,641],{},"TOTP code"," ",[644,645,646],"em",{},"or"," one of your ",[410,649,650],{},"backup codes"," (single-use).",[450,653,654,658],{},[465,655,656],{},[431,657,582],{},[465,659,660],{},"The short-lived token from the login challenge.",[450,662,663,668],{},[465,664,665],{},[431,666,667],{},"rememberDevice",[465,669,670],{},"If true, trusts this device so it skips 2FA for a limited period.",[406,672,673],{},"On success you receive real access and refresh tokens.",[419,675,489],{"id":676},"backup-codes",[678,679,680,684,691,694],"ul",{},[681,682,683],"li",{},"Generated during setup and shown once.",[681,685,686,687,690],{},"Each code works ",[410,688,689],{},"only once",".",[681,692,693],{},"Use one in place of a TOTP code if you've lost your authenticator.",[681,695,696,699,700,690],{},[410,697,698],{},"Regenerating"," backup codes requires your ",[410,701,702],{},"current password",[419,704,706],{"id":705},"disabling-2fa","Disabling 2FA",[424,708,710],{"className":426,"code":709,"language":428,"meta":429,"style":429},"POST \u002Fapi\u002Fauth\u002Ftotp\u002Fdisable\n{ \"password\": \"your-current-password\" }\n",[431,711,712,717],{"__ignoreMap":429},[434,713,714],{"class":436,"line":437},[434,715,716],{},"POST \u002Fapi\u002Fauth\u002Ftotp\u002Fdisable\n",[434,718,719],{"class":436,"line":531},[434,720,721],{},"{ \"password\": \"your-current-password\" }\n",[406,723,724,725,727,728,731],{},"Disabling requires your ",[410,726,702],{}," and ",[410,729,730],{},"revokes all trusted devices",". If your organization mandates 2FA, you can't leave it disabled — you'll be prompted to set it up again.",[419,733,735],{"id":734},"trusted-devices","Trusted devices",[406,737,738],{},"Choosing \"trust this device\" at verification creates a device record so you skip the 2FA prompt on that device for a limited period.",[444,740,741,751],{},[447,742,743],{},[450,744,745,748],{},[453,746,747],{},"Stored",[453,749,750],{},"Detail",[460,752,753,765,773],{},[450,754,755,758],{},[465,756,757],{},"Token",[465,759,760,761,764],{},"A random token kept ",[410,762,763],{},"only as a hash","; the plaintext lives in an HttpOnly cookie on your device.",[450,766,767,770],{},[465,768,769],{},"Device name",[465,771,772],{},"Derived from the browser\u002FOS user agent.",[450,774,775,778],{},[465,776,777],{},"IP & expiry",[465,779,780],{},"The IP at trust time, and an expiry date.",[515,782,784],{"id":783},"managing-your-devices","Managing your devices",[444,786,787,797],{},[447,788,789],{},[450,790,791,794],{},[453,792,793],{},"Action",[453,795,796],{},"Request",[460,798,799,809,819],{},[450,800,801,804],{},[465,802,803],{},"List devices (your current one is flagged)",[465,805,806],{},[431,807,808],{},"GET \u002Fapi\u002Fauth\u002Fdevices",[450,810,811,814],{},[465,812,813],{},"Revoke one device",[465,815,816],{},[431,817,818],{},"DELETE \u002Fapi\u002Fauth\u002Fdevices\u002F:id",[450,820,821,828],{},[465,822,823,824,827],{},"Revoke ",[410,825,826],{},"all"," devices",[465,829,830],{},[431,831,832],{},"POST \u002Fapi\u002Fauth\u002Fdevices\u002Frevoke-all",[406,834,835],{},"Disabling 2FA also revokes all trusted devices automatically.",[505,837,840],{"color":838,"icon":839},"blue","i-lucide-info",[406,841,842,845],{},[410,843,844],{},"Lost a device?"," Revoke it from any signed-in session. The next time that device tries to log in, it will be asked for 2FA again.",[419,847,849],{"id":848},"troubleshooting","Troubleshooting",[444,851,852,865],{},[447,853,854],{},[450,855,856,859,862],{},[453,857,858],{},"Error",[453,860,861],{},"Cause",[453,863,864],{},"Fix",[460,866,867,880,893,906,921,934],{},[450,868,869,874,877],{},[465,870,871],{},[431,872,873],{},"Invalid verification code",[465,875,876],{},"Wrong\u002Fexpired TOTP, or a backup code already used.",[465,878,879],{},"Wait for the next code, or use an unused backup code.",[450,881,882,887,890],{},[465,883,884],{},[431,885,886],{},"Two-factor token expired",[465,888,889],{},"The challenge window lapsed.",[465,891,892],{},"Log in again to get a new challenge.",[450,894,895,900,903],{},[465,896,897],{},[431,898,899],{},"429 Too many verification attempts",[465,901,902],{},"Too many tries in a short span.",[465,904,905],{},"Wait, then retry.",[450,907,908,911,914],{},[465,909,910],{},"Lost authenticator",[465,912,913],{},"No access to your TOTP app.",[465,915,916,917,920],{},"Use a ",[410,918,919],{},"backup code",", or ask an admin to disable 2FA on your account.",[450,922,923,928,931],{},[465,924,925],{},[431,926,927],{},"403 Two-factor authentication setup required",[465,929,930],{},"Your org mandates 2FA and you don't have it.",[465,932,933],{},"Set up 2FA to continue.",[450,935,936,939,942],{},[465,937,938],{},"Disable rejected",[465,940,941],{},"Wrong current password.",[465,943,944],{},"Re-enter your current password.",[946,947,948],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":429,"searchDepth":437,"depth":531,"links":950},[951,955,956,957,958,961],{"id":421,"depth":531,"text":422,"children":952},[953],{"id":517,"depth":954,"text":518},3,{"id":540,"depth":531,"text":541},{"id":676,"depth":531,"text":489},{"id":705,"depth":531,"text":706},{"id":734,"depth":531,"text":735,"children":959},[960],{"id":783,"depth":954,"text":784},{"id":848,"depth":531,"text":849},"Set up TOTP two-factor authentication, save backup codes, verify at login, and manage trusted devices in BookYourPTO.","md",null,{},{"icon":21},{"title":377,"description":962},"zpgk11EohRk6CjqB042ASMB-wxEviUW0Y3pr0wJ1sHs",[970,972],{"title":372,"path":373,"stem":374,"description":971,"icon":375,"children":-1},"How sign-in works in BookYourPTO — login, JWT access and refresh tokens with rotation, force-password-change, the password policy, forgot\u002Freset, and email verification.",{"title":381,"path":382,"stem":383,"description":973,"icon":384,"children":-1},"Audit logs, sign-in logs, unknown-login alerts, and log retention in BookYourPTO — what's recorded, who can see it, and how long it's kept.",1781157134977]