Strategies for handling lost or unavailable Hanko Authenticator devices.
Just as with passwords, users may lose their authentication device. If they cannot access the device used with the Hanko Authenticator, they are unable to log in to your application. In such cases, you will probably want to offer certain recovery strategies to allow them to reset or re-register their devices. This section covers some common strategies to consider when integrating with Hanko.
It’s advisable to require your users to register at least two authenticator devices, to mitigate device loss scenarios.
When prompting the user to authenticate with the Hanko Authenticator, provide a link to reset the authentication method — usually accomplished by sending the user an e-mail with instructions on how to perform account recovery. If you have a strict security policy in place, you might consider further legitimation (e.g. via phone).
Prompt the user (e.g. through a modal) to provide an e-mail address for recovery. If your login flow has the user input an e-mail before choosing an authenticator type, you can use this information to pre-fill the prompt; otherwise let the user input a custom e-mail address.
One option for offering re-registration of devices is to embed the QR code used for registration in the recovery e-mail, so users can register a device directly. Another option is to simply embed a link to generate a fresh QR code. Both options require communication with the Hanko API beforehand: you’ll need to initialize a registration request to obtain a Hanko request and extract the QR code link from it. Keep in mind that the validity of requests is subject to timeout constraints (default: 120 seconds), which is configurable in your Hanko Authenticator API instance.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Hanko","description":"Documentation for Hanko’s open-source authentication products. Build secure authentication with passkeys, passwords, MFA, social login, SSO, and push authentication.","colors":{"primary":"#6575FF","light":"#6575FF","dark":"#0D001D"},"logo":{"light":"https://mintcdn.com/hanko/cvvCniGfSDqJRest/logo/light.svg?fit=max\u0026auto=format\u0026n=cvvCniGfSDqJRest\u0026q=85\u0026s=c11abcf43f80ac4a882d948d9a697da6","dark":"https://mintcdn.com/hanko/cvvCniGfSDqJRest/logo/dark.svg?fit=max\u0026auto=format\u0026n=cvvCniGfSDqJRest\u0026q=85\u0026s=2cbd45a5f965459329fa577fe505b871"},"favicon":"https://mintcdn.com/hanko/nDll7gWf2olRVk-k/favicon.png?fit=max\u0026auto=format\u0026n=nDll7gWf2olRVk-k\u0026q=85\u0026s=0220747b414c9c1af17f71869d87269a","api":{"playground":{"display":"interactive"}},"background":{"image":"https://mintcdn.com/hanko/nDll7gWf2olRVk-k/images/background.png?fit=max\u0026auto=format\u0026n=nDll7gWf2olRVk-k\u0026q=85\u0026s=cb6d5948c52e06bab12e957123881b4b","decoration":"gradient","color":{"dark":"#000000"}},"navbar":{"links":[{"href":"https://discord.gg/tAG6RrRqJD","label":"Discord"}],"primary":{"type":"button","label":"Hanko Cloud Console","href":"https://cloud.hanko.io"}},"footer":{"socials":{"x":"https://x.com/hanko_io","github":"https://github.com/teamhanko","linkedin":"https://www.linkedin.com/company/teamhanko"}},"fonts":{"family":"Geist"},"icons":{"library":"fontawesome"},"integrations":{"plausible":{"domain":"docs.hanko.io"}},"errors":{"404":{"redirect":false}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"thumbnails":{"fonts":{"family":"Geist"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hanko","hasAudioNarration":false,"actualSubdomain":"hanko","customDomains":["docs.hanko.io"],"gitSource":{"type":"github","owner":"teamhanko","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae130142e7b9f2a4eb1451d","collectionId":"e51a69b0-9d1a-4cbb-828c-c20cc6c4b68c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae130142e7b9f2a4eb1451d"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{},"buildId":"6ae130142e7b9f2a4eb1451d","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Hanko Docs","count":127},{"language":"default","tag":"Resources","count":68},{"language":"default","tag":"API reference","count":64},{"language":"default","tag":"Admin","count":49},{"language":"default","tag":"Guides","count":41},{"language":"default","tag":"Hanko Authenticator Docs","count":28},{"language":"default","tag":"Getting started","count":27},{"language":"default","tag":"Quickstarts","count":26},{"language":"default","tag":"Passkey API Docs","count":24},{"language":"default","tag":"API Reference","count":22}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@hanko.io"}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"hanko-authenticator/guides/recovery","slug":"/hanko-authenticator/guides/recovery","pageMetadata":{"sidebarTitle":"Recovery","title":"Recovery techniques","description":"Strategies for handling lost or unavailable Hanko Authenticator devices.","href":"/hanko-authenticator/guides/recovery"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Strategies for handling lost or unavailable Hanko Authenticator devices.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components},{Frame,OptimizedImage,Tip}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Just as with passwords, users may lose their authentication device. If they cannot access the device used with the Hanko Authenticator, they are unable to log in to your application. In such cases, you will probably want to offer certain recovery strategies to allow them to reset or re-register their devices. This section covers some common strategies to consider when integrating with Hanko.`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`It’s advisable to require your users to register at least two authenticator devices, to mitigate device loss scenarios.`})}),`\n`,_jsx(_components.p,{children:`When prompting the user to authenticate with the Hanko Authenticator, provide a link to reset the authentication method — usually accomplished by sending the user an e-mail with instructions on how to perform account recovery. If you have a strict security policy in place, you might consider further legitimation (e.g. via phone).`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless.png?fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=65b582cb6b9ad9ed57cdfca342d7244e`,alt:`Recovery link`,\"data-og-width\":`350`,width:`350`,\"data-og-height\":`400`,height:`400`,\"data-path\":`images/hanko-authenticator/mockups/recovery-passwordless.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless.png?w=280\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=3023557353b2559ceb804d5c476f219c 280w, https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless.png?w=560\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=7449e760d8892881d153eef54c95b9f4 560w, https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless.png?w=840\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=c9f09dd94927ecba5cd454842c5e26e7 840w, https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=0ccf4257ec3699a93a18b878a3d9a820 1100w, https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=f9b68518d4d262edec6909bf3ed2a4b4 1650w, https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=339448c7a28078a4df6829b79dbb339c 2500w`})}),`\n`,_jsx(_components.p,{children:`Prompt the user (e.g. through a modal) to provide an e-mail address for recovery. If your login flow has the user input an e-mail before choosing an authenticator type, you can use this information to pre-fill the prompt; otherwise let the user input a custom e-mail address.`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless-email.png?fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=e09c3e56c295fe8e6baeeccbf1382095`,alt:`Recovery e-mail prompt`,\"data-og-width\":`351`,width:`351`,\"data-og-height\":`401`,height:`401`,\"data-path\":`images/hanko-authenticator/mockups/recovery-passwordless-email.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless-email.png?w=280\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=9f7a9c39bb9b2dd7d6817c67643545cb 280w, https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless-email.png?w=560\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=31d1d11cda8e84f6362bd8a300da2179 560w, https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless-email.png?w=840\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=4d360ff269c8b6a61c85e3c3fef5e631 840w, https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless-email.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=a310dcc57c670f377d6027b227d8d785 1100w, https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless-email.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=46b00e8abef089fb119e218d137397c4 1650w, https://mintcdn.com/hanko/DAs0LNceUiIaZd6m/images/hanko-authenticator/mockups/recovery-passwordless-email.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DAs0LNceUiIaZd6m\u0026q=85\u0026s=65a5d5ff431a84b43802e71c4b344dda 2500w`})}),`\n`,_jsxs(_components.p,{children:[`One option for offering re-registration of devices is to embed the QR code used for `,_jsx(_components.a,{href:`/hanko-authenticator/quickstart/authenticator-app-registration`,children:`registration`}),` in the recovery e-mail, so users can register a device directly. Another option is to simply embed a link to generate a fresh QR code. Both options require communication with the Hanko API beforehand: you’ll need to initialize a registration request to obtain a Hanko request and extract the QR code link from it. Keep in mind that the validity of requests is subject to timeout constraints (default: 120 seconds), which is configurable in your Hanko Authenticator API instance.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"sidebarTitle":"Recovery","title":"Recovery techniques","description":"Strategies for handling lost or unavailable Hanko Authenticator devices.","href":"/hanko-authenticator/guides/recovery"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"hanko","siteName":"Hanko","title":"Recovery techniques - Hanko","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-22T14:36:26.320Z","originalFileLocation":"hanko-authenticator/guides/recovery.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Strategies for handling lost or unavailable Hanko Authenticator devices.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Hanko\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hanko/E70FYFIuCUxDugor/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/hanko/E70FYFIuCUxDugor/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hanko/E70FYFIuCUxDugor/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hanko/E70FYFIuCUxDugor/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hanko/E70FYFIuCUxDugor/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hanko/E70FYFIuCUxDugor/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hanko/E70FYFIuCUxDugor/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hanko/E70FYFIuCUxDugor/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hanko/E70FYFIuCUxDugor/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Recovery techniques - Hanko\">\u003cmeta data-mint-head property=\"og:description\" content=\"Strategies for handling lost or unavailable Hanko Authenticator devices.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Hanko\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.hanko.io/hanko-authenticator/guides/recovery\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hanko.mintlify.app/_mintlify/api/og/v2?division=Guides\u0026amp;title=Recovery+techniques\u0026amp;description=Strategies+for+handling+lost+or+unavailable+Hanko+Authenticator+devices.\u0026amp;theme=0019bde39b8e96d0b6d738b4\u0026amp;signature=f72c4a3443911cceb30f160f9477911d99a1e06d432c018a8eeee868f83f41e3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Recovery techniques - Hanko\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Strategies for handling lost or unavailable Hanko Authenticator devices.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hanko.mintlify.app/_mintlify/api/og/v2?division=Guides\u0026amp;title=Recovery+techniques\u0026amp;description=Strategies+for+handling+lost+or+unavailable+Hanko+Authenticator+devices.\u0026amp;theme=0019bde39b8e96d0b6d738b4\u0026amp;signature=f72c4a3443911cceb30f160f9477911d99a1e06d432c018a8eeee868f83f41e3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/hanko/E70FYFIuCUxDugor/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Hanko\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6575FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.hanko.io/hanko-authenticator/guides/recovery\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/hanko-authenticator/guides/recovery.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.hanko.io/#organization\",\"name\":\"Hanko\",\"url\":\"https://docs.hanko.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hanko/cvvCniGfSDqJRest/logo/light.svg?fit=max\u0026auto=format\u0026n=cvvCniGfSDqJRest\u0026q=85\u0026s=c11abcf43f80ac4a882d948d9a697da6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.hanko.io#website\",\"name\":\"Hanko\",\"url\":\"https://docs.hanko.io\",\"publisher\":{\"@id\":\"https://docs.hanko.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.hanko.io/hanko-authenticator/guides/recovery#webpage\",\"url\":\"https://docs.hanko.io/hanko-authenticator/guides/recovery\",\"name\":\"Recovery techniques\",\"description\":\"Strategies for handling lost or unavailable Hanko Authenticator devices.\",\"dateModified\":\"2026-07-22T14:36:26.320Z\",\"isPartOf\":{\"@id\":\"https://docs.hanko.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.hanko.io/hanko-authenticator/guides/recovery#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.hanko.io/hanko-authenticator/guides/recovery#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://docs.hanko.io/hanko-authenticator/guides/integration-overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recovery techniques\",\"item\":\"https://docs.hanko.io/hanko-authenticator/guides/recovery\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.hanko.io/hanko-authenticator/guides/recovery#article\",\"headline\":\"Recovery techniques\",\"name\":\"Recovery techniques\",\"description\":\"Strategies for handling lost or unavailable Hanko Authenticator devices.\",\"url\":\"https://docs.hanko.io/hanko-authenticator/guides/recovery\",\"mainEntityOfPage\":{\"@id\":\"https://docs.hanko.io/hanko-authenticator/guides/recovery#webpage\"},\"dateModified\":\"2026-07-22T14:36:26.320Z\",\"publisher\":{\"@id\":\"https://docs.hanko.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.hanko.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Hanko\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Hanko","nav":{"global":null,"tabs":[{"tab":"Hanko Docs","pages":[{"title":"Hanko Docs","href":"/introduction"}]},{"tab":"Passkey API Docs","pages":[{"title":"Passkey API Docs","href":"/passkey-api/introduction"}]},{"tab":"Hanko Authenticator Docs","groups":[{"group":"Getting started","pages":[{"sidebarTitle":"Introduction","title":"Introduction to Hanko Authenticator","mode":"wide","href":"/hanko-authenticator/introduction"},{"sidebarTitle":"Core components","title":"Core components","href":"/hanko-authenticator/core-components"},{"sidebarTitle":"What is FIDO UAF?","title":"What is FIDO UAF?","href":"/hanko-authenticator/what-is-fido-uaf"}]},{"group":"Quickstarts","pages":[{"group":"Hanko Authenticator App","pages":[{"sidebarTitle":"Overview","title":"Getting started with Hanko Authenticator","href":"/hanko-authenticator/quickstart/authenticator-app"},{"sidebarTitle":"Registration","title":"Register a device using the Hanko Authenticator","href":"/hanko-authenticator/quickstart/authenticator-app-registration"},{"sidebarTitle":"Authentication","title":"Authenticate with a device using Hanko Authenticator","href":"/hanko-authenticator/quickstart/authenticator-app-authentication"},{"sidebarTitle":"Transactions","title":"Confirm transactions using Hanko Authenticator","href":"/hanko-authenticator/quickstart/authenticator-app-transactions"},{"sidebarTitle":"De-registration","title":"De-register a device","href":"/hanko-authenticator/quickstart/authenticator-app-de-registration"}]},{"group":"FIDO UAF Client SDK","pages":[{"sidebarTitle":"Overview","title":"Getting started with the Hanko FIDO UAF Client","href":"/hanko-authenticator/quickstart/uaf-client"},{"sidebarTitle":"Registration","title":"Register a device with the Hanko FIDO UAF Client","href":"/hanko-authenticator/quickstart/uaf-client-registration"},{"sidebarTitle":"Authentication","title":"Authenticate with a device using the Hanko FIDO UAF Client","href":"/hanko-authenticator/quickstart/uaf-client-authentication"},{"sidebarTitle":"Transactions","title":"Confirm transactions using the Hanko FIDO UAF Client","href":"/hanko-authenticator/quickstart/uaf-client-transactions"},{"sidebarTitle":"De-registration","title":"De-register a device using the Hanko FIDO UAF Client","href":"/hanko-authenticator/quickstart/uaf-client-de-registration"}]}]},{"group":"Guides","pages":[{"sidebarTitle":"Integration overview","title":"Integration guide","href":"/hanko-authenticator/guides/integration-overview"},{"sidebarTitle":"Registration screen","title":"Modifying your registration flow","href":"/hanko-authenticator/guides/registration-screen"},{"sidebarTitle":"Login screen","title":"Modifying your login flow","description":"How to add Hanko Authenticator login to your existing login flow.","href":"/hanko-authenticator/guides/login-screen"},{"sidebarTitle":"Recovery","title":"Recovery techniques","href":"/hanko-authenticator/guides/recovery"},{"sidebarTitle":"Authenticator apps","title":"Hanko Authenticator apps","description":"Device compatibility for the Hanko Authenticator apps on Android and iOS.","href":"/hanko-authenticator/guides/authenticator-apps"}]},{"group":"SDKs \u0026 Plugins","pages":[{"sidebarTitle":"Android","title":"FIDO UAF Client for Android","href":"/hanko-authenticator/sdks/android"},{"sidebarTitle":"iOS","title":"FIDO UAF Client for iOS","href":"/hanko-authenticator/sdks/ios"},{"sidebarTitle":"Keycloak plugin","title":"Hanko Keycloak plugin","href":"/hanko-authenticator/sdks/keycloak-plugin"}]},{"group":"API Reference","pages":[{"group":"Hanko Authenticator","pages":[{"openapi":"openapi-authenticator post /v1/uaf/requests","title":"Create a request for the Hanko Authenticator","href":"/hanko-authenticator/reference/create-a-request"},{"openapi":"openapi-authenticator get /v1/uaf/requests/{id}","title":"Get the request for the Hanko Authenticator","href":"/hanko-authenticator/reference/get-a-request"},{"openapi":"openapi-authenticator delete /v1/uaf/requests/{id}","title":"Cancel the request for the Hanko Authenticator","href":"/hanko-authenticator/reference/cancel-a-request"},{"openapi":"openapi-authenticator put /v1/uaf/requests/{id}","title":"Validate the request as retrieved from the Hanko Authenticator","href":"/hanko-authenticator/reference/validate-a-request"},{"openapi":"openapi-authenticator get /v1/uaf/requests/{id}/qrcode","title":"Get the QR code for a given Hanko Authenticator request","href":"/hanko-authenticator/reference/get-a-qr-code"}]},{"group":"Device Management","pages":[{"openapi":"openapi-authenticator get /mgmt/v1/registrations/{userId}","title":"Get all devices of a user","href":"/hanko-authenticator/reference/get-a-users-devices"},{"openapi":"openapi-authenticator post /mgmt/v1/registrations/rename/{deviceId}","title":"Change the name of a authentication device","href":"/hanko-authenticator/reference/rename-a-device"}]}]}]}]},"basePath":"","title":"Recovery techniques - Hanko","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-Bpq2Z6jK.js","DynamicMarkdown-D5M2At0B.js","zoom-image-lightbox-DL4wrF0w.js","lightbox-handle-r17bVUz3.js"]}