Integrate any JWT-based authentication provider (Auth0, Firebase, Cognito, OIDC) with Privy embedded wallets
Privy supports all JWT-based authentication providers. This includes any OIDC compliant authentication system, including OAuth 2.0, Auth0, Firebase, AWS Cognito, and more.
To enable this feature, upgrade to the Scale plan in the Privy dashboard.
Using JWT-based authentication integration, you can use your existing authentication system with Privy’s services. This approach allows users to maintain their existing login experience while giving them access to embedded wallets.Privy’s authentication is fully compatible with any authentication provider that supports JWT-based, stateless authentication. When a user logs into your app, your auth provider issues them an access and/or identity token to represent their auth status. Privy validates this token to authenticate your user.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Privy Docs","colors":{"primary":"#010110","light":"#FFFFFF"},"logo":{"light":"https://mintcdn.com/privy-c2af3412/Ih_Fo3QYM486gzWq/logo/privy-logo-light.png?fit=max\u0026auto=format\u0026n=Ih_Fo3QYM486gzWq\u0026q=85\u0026s=bd297b680ace8a13db4d9ce977f93180","dark":"https://mintcdn.com/privy-c2af3412/Ih_Fo3QYM486gzWq/logo/privy-logo-dark.png?fit=max\u0026auto=format\u0026n=Ih_Fo3QYM486gzWq\u0026q=85\u0026s=24d83970695ab19a1803a2eb00dbea4e"},"favicon":"https://mintcdn.com/privy-c2af3412/YByWVKlFbSpnpSJG/favicon.png?fit=max\u0026auto=format\u0026n=YByWVKlFbSpnpSJG\u0026q=85\u0026s=ee4038168ea586e5f72041e5e2a1f5c8","api":{"openapi":{"source":"https://api.staging.privy.io/v1/openapi.json"},"playground":{"display":"interactive"},"examples":{"languages":["curl","java","javascript","php","go"]},"mdx":{"server":"https://api.privy.io"}},"background":{"color":{"light":"#FFFFFF","dark":"#010110"}},"navbar":{"links":[{"href":"https://demo.privy.io","label":"Demo"},{"href":"https://privy.io/slack","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.privy.io"}},"seo":{"metatags":{"og:type":"website","og:site_name":"Privy Docs","og:image":"https://assets.privy.io/docs-og.png","twitter:title":"Privy Docs","twitter:card":"summary_large_image","twitter:image":"https://assets.privy.io/docs-og.png"},"organization":{"id":"https://www.privy.io/#organization","name":"Privy","url":"https://www.privy.io","logo":"https://assets.privy.io/docs-og.png","sameAs":["https://x.com/privy_io","https://github.com/privy-io"]}},"styling":{"codeblocks":"system","latex":true},"integrations":{"gtm":{"tagId":"GTM-WV9MVTB3"}},"contextual":{"options":["claude","chatgpt","cursor","vscode","mcp","copy","view"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"privy-c2af3412","hasAudioNarration":false,"actualSubdomain":"privy-c2af3412","customDomains":["docs.privy.io"],"gitSource":{"type":"github","owner":"privy-io","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeab1decc50cf1165d384fa","collectionId":"f719abb5-dc24-49b7-b904-6b83982c20fd","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeab1decc50cf1165d384fa"},"feedback":{"issues":true,"thumbs":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeab31f8dbebd24c08c0dc3","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Wallets","count":282},{"language":"default","tag":"API reference","count":239},{"language":"default","tag":"Recipes","count":140},{"language":"default","tag":"All recipes","count":139},{"language":"default","tag":"Identity","count":130},{"language":"default","tag":"Signatures and transactions","count":90},{"language":"default","tag":"Basics","count":86},{"language":"default","tag":"Users","count":82},{"language":"default","tag":"Financial flows","count":79},{"language":"default","tag":"Controls","count":76}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"rbac-expansion","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},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/_mintlify/custom/privy-c2af3412/4e67a2a256ed8221/style.css"}],"page":{"pagePath":"authentication/user-authentication/jwt-based-auth/overview","slug":"/authentication/user-authentication/jwt-based-auth/overview","pageMetadata":{"sidebarTitle":"Overview","title":"Using your own authentication provider","description":"Integrate any JWT-based authentication provider (Auth0, Firebase, Cognito, OIDC) with Privy embedded wallets","keywords":["JWT","custom auth","Auth0","Firebase","Cognito","OIDC","OAuth 2.0","authentication provider","bring your own auth"],"href":"/authentication/user-authentication/jwt-based-auth/overview"},"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: \"Integrate any JWT-based authentication provider (Auth0, Firebase, Cognito, OIDC) with Privy embedded wallets\"\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},{Note,OptimizedImage}=_components;if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Privy supports all JWT-based authentication providers. This includes any OIDC compliant authentication system, including OAuth 2.0, Auth0, Firebase, AWS Cognito, and more.`}),`\n`,_jsx(Note,{children:`To enable this feature, upgrade to the Scale plan in the Privy dashboard.`}),`\n`,_jsx(_components.p,{children:`Using JWT-based authentication integration, you can use your existing authentication system with Privy’s services. This approach allows users to maintain their existing login experience while giving them access to embedded wallets.`}),`\n`,_jsxs(_components.p,{children:[`Privy’s authentication is fully compatible with any authentication provider that supports `,_jsx(_components.a,{href:`https://jwt.io/`,children:`JWT-based`}),`, `,_jsx(_components.a,{href:`https://auth0.com/blog/stateless-auth-for-stateful-minds/`,children:`stateless`}),` authentication. When a user logs into your app, your auth provider issues them an access and/or identity token to represent their auth status. Privy validates this token to authenticate your user.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/privy-c2af3412/zlmLhiIqRR7ViKN0/images/jwt-based-auth-splash.png?fit=max\u0026auto=format\u0026n=zlmLhiIqRR7ViKN0\u0026q=85\u0026s=ac522c8b8c19e1983d064c042db39936`,alt:`JWT-based auth splash`,\"data-og-width\":`5529`,width:`5529`,\"data-og-height\":`3949`,height:`3949`,\"data-path\":`images/jwt-based-auth-splash.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/privy-c2af3412/zlmLhiIqRR7ViKN0/images/jwt-based-auth-splash.png?w=280\u0026fit=max\u0026auto=format\u0026n=zlmLhiIqRR7ViKN0\u0026q=85\u0026s=4a1cb0e1fb927c57346fb3e774993e92 280w, https://mintcdn.com/privy-c2af3412/zlmLhiIqRR7ViKN0/images/jwt-based-auth-splash.png?w=560\u0026fit=max\u0026auto=format\u0026n=zlmLhiIqRR7ViKN0\u0026q=85\u0026s=4917411ef3002a86a24c845b7e13bf6e 560w, https://mintcdn.com/privy-c2af3412/zlmLhiIqRR7ViKN0/images/jwt-based-auth-splash.png?w=840\u0026fit=max\u0026auto=format\u0026n=zlmLhiIqRR7ViKN0\u0026q=85\u0026s=64ef25ceb73aef7e0ce753a83ce53ae1 840w, https://mintcdn.com/privy-c2af3412/zlmLhiIqRR7ViKN0/images/jwt-based-auth-splash.png?w=1100\u0026fit=max\u0026auto=format\u0026n=zlmLhiIqRR7ViKN0\u0026q=85\u0026s=ddf26e5294ad69d4026aec1ebc3cf673 1100w, https://mintcdn.com/privy-c2af3412/zlmLhiIqRR7ViKN0/images/jwt-based-auth-splash.png?w=1650\u0026fit=max\u0026auto=format\u0026n=zlmLhiIqRR7ViKN0\u0026q=85\u0026s=71d8ba5c985dac39f6164ff65e425d0a 1650w, https://mintcdn.com/privy-c2af3412/zlmLhiIqRR7ViKN0/images/jwt-based-auth-splash.png?w=2500\u0026fit=max\u0026auto=format\u0026n=zlmLhiIqRR7ViKN0\u0026q=85\u0026s=5603353b36d739523f9f11cc55317b16 2500w`})]})}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":{"codeStyling":"system","config":{},"pageMetadata":{"sidebarTitle":"Overview","title":"Using your own authentication provider","description":"Integrate any JWT-based authentication provider (Auth0, Firebase, Cognito, OIDC) with Privy embedded wallets","keywords":["JWT","custom auth","Auth0","Firebase","Cognito","OIDC","OAuth 2.0","authentication provider","bring your own auth"],"href":"/authentication/user-authentication/jwt-based-auth/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/privy-c2af3412/9a6cfa36ced76db0/welcome.js","/_mintlify/custom/privy-c2af3412/1af79d46bd64cd8b/fullstory.js","/_mintlify/custom/privy-c2af3412/e4d91321024fde21/recipes/recipes-search.js","/_mintlify/custom/privy-c2af3412/d31c5451398ab22c/check-links.js"],"subdomain":"privy-c2af3412","siteName":"Privy Docs","title":"Using your own authentication provider - Privy Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T14:31:41.367Z","originalFileLocation":"authentication/user-authentication/jwt-based-auth/overview.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=\"Integrate any JWT-based authentication provider (Auth0, Firebase, Cognito, OIDC) with Privy embedded wallets\">\u003cmeta data-mint-head name=\"application-name\" content=\"Privy Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/privy-c2af3412/bJgmnaRQwH8sO8y5/_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/privy-c2af3412/bJgmnaRQwH8sO8y5/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/privy-c2af3412/bJgmnaRQwH8sO8y5/_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/privy-c2af3412/bJgmnaRQwH8sO8y5/_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/privy-c2af3412/bJgmnaRQwH8sO8y5/_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/privy-c2af3412/bJgmnaRQwH8sO8y5/_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/privy-c2af3412/bJgmnaRQwH8sO8y5/_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/privy-c2af3412/bJgmnaRQwH8sO8y5/_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/privy-c2af3412/bJgmnaRQwH8sO8y5/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Using your own authentication provider - Privy Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Integrate any JWT-based authentication provider (Auth0, Firebase, Cognito, OIDC) with Privy embedded wallets\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Privy Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.privy.io/authentication/user-authentication/jwt-based-auth/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://assets.privy.io/docs-og.png\">\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=\"Privy Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Integrate any JWT-based authentication provider (Auth0, Firebase, Cognito, OIDC) with Privy embedded wallets\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://assets.privy.io/docs-og.png\">\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/privy-c2af3412/bJgmnaRQwH8sO8y5/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Privy Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#010110\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.privy.io/authentication/user-authentication/jwt-based-auth/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/authentication/user-authentication/jwt-based-auth/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.privy.io/#organization\",\"name\":\"Privy\",\"url\":\"https://www.privy.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://assets.privy.io/docs-og.png\"},\"sameAs\":[\"https://x.com/privy_io\",\"https://github.com/privy-io\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.privy.io#website\",\"name\":\"Privy Docs\",\"url\":\"https://docs.privy.io\",\"publisher\":{\"@id\":\"https://www.privy.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.privy.io/authentication/user-authentication/jwt-based-auth/overview#webpage\",\"url\":\"https://docs.privy.io/authentication/user-authentication/jwt-based-auth/overview\",\"name\":\"Using your own authentication provider\",\"description\":\"Integrate any JWT-based authentication provider (Auth0, Firebase, Cognito, OIDC) with Privy embedded wallets\",\"dateModified\":\"2026-11-03T14:31:41.367Z\",\"isPartOf\":{\"@id\":\"https://docs.privy.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.privy.io/authentication/user-authentication/jwt-based-auth/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.privy.io/authentication/user-authentication/jwt-based-auth/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Privy Docs\",\"item\":\"https://docs.privy.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using your own authentication provider\",\"item\":\"https://docs.privy.io/authentication/user-authentication/jwt-based-auth/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.privy.io/authentication/user-authentication/jwt-based-auth/overview#article\",\"headline\":\"Using your own authentication provider\",\"name\":\"Using your own authentication provider\",\"description\":\"Integrate any JWT-based authentication provider (Auth0, Firebase, Cognito, OIDC) with Privy embedded wallets\",\"url\":\"https://docs.privy.io/authentication/user-authentication/jwt-based-auth/overview\",\"mainEntityOfPage\":{\"@id\":\"https://docs.privy.io/authentication/user-authentication/jwt-based-auth/overview#webpage\"},\"image\":\"https://assets.privy.io/docs-og.png\",\"dateModified\":\"2026-11-03T14:31:41.367Z\",\"keywords\":\"JWT, custom auth, Auth0, Firebase, Cognito, OIDC, OAuth 2.0, authentication provider, bring your own auth\",\"publisher\":{\"@id\":\"https://www.privy.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.privy.io#website\"}}]}\u003c/script>","siteName":"Privy Docs","nav":{"global":null,"tabs":[{"tab":"Basics","pages":[{"title":"Basics","href":"/basics/get-started/about"}]},{"tab":"Wallets","menu":[{"item":"Overview","pages":[{"title":"Overview","href":"/wallets/overview"}]},{"item":"Embedded wallets","pages":[{"title":"Embedded wallets","href":"/wallets/overview/embedded"}]},{"item":"Organization wallets","pages":[{"title":"Organization wallets","href":"/organizations/overview"}]},{"item":"External wallets","pages":[{"title":"External wallets","href":"/wallets/connectors/overview"}]},{"item":"Signatures and transactions","pages":[{"title":"Signatures and transactions","href":"/wallets/signatures-and-transactions"}]},{"item":"Balances and webhooks","pages":[{"title":"Balances and webhooks","href":"/wallets/gas-and-asset-management/assets/overview"}]},{"item":"Gas and fee management","pages":[{"title":"Gas and fee management","href":"/wallets/gas-and-asset-management/gas/overview"}]}],"pages":[{"title":"Wallets","href":"/wallets/overview"}]},{"tab":"Financial flows","menu":[{"item":"Overview","pages":[{"title":"Overview","href":"/financial-flows/overview"}]},{"item":"Deposits","pages":[{"title":"Deposits","href":"/financial-flows/deposits/overview"}]},{"item":"Payouts","pages":[{"title":"Payouts","href":"/financial-flows/payouts/overview"}]},{"item":"Earn","pages":[{"title":"Earn","href":"/wallets/actions/earn/overview"}]},{"item":"Cards","pages":[{"title":"Cards","href":"/financial-flows/cards/overview"}]},{"item":"Trade","pages":[{"title":"Trade","href":"/wallets/actions/swap/overview"}]},{"item":"Monetization","pages":[{"title":"Monetization","href":"/financial-flows/monetization"}]},{"item":"Treasury management","pages":[{"title":"Treasury management","href":"/treasury-management/overview"}]},{"item":"Private transactions","pages":[{"title":"Private transactions","href":"/financial-flows/private-transactions"}]}],"pages":[{"title":"Financial flows","href":"/financial-flows/overview"}]},{"tab":"Controls and policies","menu":[{"item":"Controls","pages":[{"title":"Controls","href":"/controls/overview"}]},{"item":"Policies","pages":[{"title":"Policies","href":"/controls/policies/overview"}]},{"item":"Manual approvals","pages":[{"title":"Manual approvals","href":"/controls/dashboard/overview"}]}],"pages":[{"title":"Controls and policies","href":"/controls/overview"}]},{"tab":"Identity","menu":[{"item":"Authentication","groups":[{"group":"Authentication","pages":[{"title":"Overview","href":"/authentication/overview"}]},{"group":"Using Privy authentication","pages":[{"sidebarTitle":"Overview","title":"Using Privy as your authentication provider","href":"/authentication/user-authentication/privy-auth"},{"group":"Login methods","pages":[{"title":"Email","href":"/authentication/user-authentication/login-methods/email"},{"title":"SMS and WhatsApp","href":"/authentication/user-authentication/login-methods/sms-whatsapp"},{"title":"Wallet","href":"/authentication/user-authentication/login-methods/wallet"},{"title":"Passkey","href":"/authentication/user-authentication/login-methods/passkey"},{"title":"OAuth","href":"/authentication/user-authentication/login-methods/oauth"},{"title":"Farcaster","href":"/authentication/user-authentication/login-methods/farcaster"},{"title":"Additional OAuth providers","href":"/authentication/user-authentication/login-methods/custom-oauth"}]},{"title":"Authentication state","href":"/authentication/user-authentication/authentication-state"},{"title":"Tokens","href":"/authentication/user-authentication/tokens"},{"title":"Access tokens","href":"/authentication/user-authentication/access-tokens"},{"title":"Logging users out","href":"/authentication/user-authentication/logout"},{"group":"MFA","pages":[{"title":"Multi-factor authentication (MFA)","sidebarTitle":"Overview","href":"/authentication/user-authentication/mfa/overview"},{"title":"Setting up wallet MFA for your app","href":"/authentication/user-authentication/mfa/setup"},{"group":"Custom UI","pages":[{"title":"Overview","href":"/authentication/user-authentication/mfa/custom-ui/overview"},{"group":"Enrollment","pages":[{"title":"Overview","href":"/authentication/user-authentication/mfa/enrollment/overview"},{"title":"SMS enrollment","href":"/authentication/user-authentication/mfa/enrollment/sms"},{"title":"TOTP enrollment","href":"/authentication/user-authentication/mfa/enrollment/totp"},{"title":"Passkey enrollment","href":"/authentication/user-authentication/mfa/enrollment/passkeys"}]},{"group":"Verification","pages":[{"title":"Overview","href":"/authentication/user-authentication/mfa/verify/overview"},{"title":"SMS verification","href":"/authentication/user-authentication/mfa/verify/sms"},{"title":"TOTP verification","href":"/authentication/user-authentication/mfa/verify/totp"},{"title":"Passkey verification","href":"/authentication/user-authentication/mfa/verify/passkeys"}]},{"title":"Unenrolling MFA methods","href":"/authentication/user-authentication/mfa/unenroll"},{"title":"MFA required listener","href":"/authentication/user-authentication/mfa/listener"},{"title":"Error handling","href":"/authentication/user-authentication/mfa/errors"}]},{"title":"Using default Privy UIs","href":"/authentication/user-authentication/mfa/default-ui"}]},{"group":"Advanced","pages":[{"title":"Guest accounts","href":"/authentication/user-authentication/login-methods/guest"},{"title":"CAPTCHA on login","href":"/authentication/user-authentication/captcha"}]},{"title":"UI components","href":"/authentication/user-authentication/ui-component"},{"title":"Whitelabel","description":"Build fully custom authentication UIs with your own design while Privy handles security and backend logic","href":"/authentication/user-authentication/whitelabel"}]},{"group":"Using your own authentication","pages":[{"sidebarTitle":"Overview","title":"Using your own authentication provider","href":"/authentication/user-authentication/jwt-based-auth/overview"},{"sidebarTitle":"Setup","title":"Configuring your authentication provider","description":"Configure your JWT-based authentication provider in the Privy Dashboard for custom auth integration","href":"/authentication/user-authentication/jwt-based-auth/setup"},{"sidebarTitle":"Usage","title":"Integrating your authentication provider with Privy","href":"/authentication/user-authentication/jwt-based-auth/usage"}]}]},{"item":"Users","pages":[{"title":"Users","href":"/user-management/users/overview"}]},{"item":"KYC and KYB","pages":[{"title":"KYC and KYB","href":"/kyc-kyb/overview"}]}]},{"tab":"Security","pages":[{"title":"Security","href":"/security/overview"}]},{"tab":"Recipes","pages":[{"title":"Recipes","href":"/recipes/overview"}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"Using your own authentication provider - Privy Docs","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.js"]}