CINXE.COM
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><script> const generateNewContext = () => { return { window: { location: { hash: window.location.hash, host: window.location.host, hostname: window.location.hostname, href: window.location.href, origin: window.location.origin, pathname: window.location.pathname, port: window.location.port, protocol: window.location.protocol, search: window.location.search, }, navigator: { language: window.navigator.language, browserLanguage: window.navigator.browserLanguage, userAgent: window.navigator.userAgent, }, innerHeight: window.innerHeight, innerWidth: window.innerWidth, }, document: { title: document.title, referrer: document.referrer, }, }; }; window.addEventListener('resize', () => { const iframe = document.getElementById('drift-iframe'); iframe.contentWindow.postMessage( { type: 'driftUpdateContext', data: generateNewContext() }, '*', ); }); window.addEventListener('scroll', (event) => { const iframe = document.getElementById('drift-iframe'); iframe.contentWindow.postMessage( { type: 'driftParentScroll', data: { scroll: true }, target: 'drift.parentScroll', }, '*', ); }); window.addEventListener('message', function (event) { const iframe = document.getElementById('drift-iframe'); if ( !(iframe && iframe.contentWindow) && event.source === iframe.contentWindow ) { return; } const message = event.data; if (message.type === 'drift:ready') { iframe.contentWindow.postMessage( { type: 'driftSetContext', data: generateNewContext() }, '*', ); } if (message.type === 'drift:resize') { const styles = message.data.styles; for (let key in styles) { if (!styles.hasOwnProperty(key)) { continue; } iframe.style.setProperty(key, styles[key]); } } }); </script><meta name="next-head-count" content="3"/><link rel="shortcut icon mask-icon" type="image/svg+xml" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon.svg"/><link rel="shortcut icon" type="image/svg+xml" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon.svg"/><link rel="shortcut icon" type="image/png" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon-48.png"/><link rel="icon" sizes="16x16" type="image/png" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon-16.png"/><link rel="icon" sizes="32x32" type="image/png" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon-32.png"/><link rel="icon" sizes="48x48" type="image/png" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon-48.png"/><link rel="icon" sizes="96x96" type="image/png" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon-96.png"/><link rel="icon" sizes="144x144" type="image/png" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon-144.png"/><link rel="apple-touch-icon" sizes="180x180" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon-180.png"/><link rel="apple-touch-icon" sizes="120x120" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon-120px.png"/><link rel="apple-touch-icon" sizes="152x152" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon-152px.png"/><link rel="stylesheet" type="text/css" href="https://cdn.auth0.com/website/styleguide/core-custom/1.0.3/core.min.css"/><link rel="stylesheet" type="text/css" charSet="UTF-8" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css"/><link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick-theme.min.css"/><script type="text/plain" class="optanon-category-4">(function (h, o, t, j, a, r) {h.hj = h.hj || function () { (h.hj.q = h.hj.q || []).push(arguments) }; h._hjSettings = { hjid: 301495, hjsv: 5 }; a = o.getElementsByTagName('head')[0]; r = o.createElement('script'); r.async = 1; r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv; a.appendChild(r);}(window, document, '//static.hotjar.com/c/hotjar-', '.js?sv='))</script><script type="text/plain" class="optanon-category-4"> window._6si = window._6si || []; window._6si.push(['enableEventTracking', true]); window._6si.push(['setToken', '5400c5b6d4c7c0376f36ed7c5ebbc828']); window._6si.push(['setEndpoint', 'b.6sc.co']); (function() { var gd = document.createElement('script'); gd.type = 'text/javascript'; gd.async = true; gd.src = '//j.6sc.co/6si.min.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gd, s); })();</script><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/polyfills-42372ed130431b0a.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD"></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/webpack-7ae82f107f66292e.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/framework-6a6591a01b80b369.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/main-dea98ac63d73710a.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/pages/_app-6a17cdba5a41af92.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/9236dd9e-082ad666411b1bc7.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/30427-04b7287055e92b55.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/41664-1048fb8eb6ddb2be.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/79217-e092817ce7c764ab.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/14195-f4888dcaa8b1aa76.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/chunks/pages/withServerSide-90d1d500f0620b0b.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/4H_heGAWuDzoSJsdz_pIt/_buildManifest.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><script src="/b2b-enterprise-identity-management/vercel/_next/static/4H_heGAWuDzoSJsdz_pIt/_ssgManifest.js?dpl=dpl_AK58PmFzdnEkThnwKgjuDqzprBYD" defer=""></script><style data-styled="" data-styled-version="5.3.11">html{line-height:1.15;-webkit-text-size-adjust:100%;}/*!sc*/ body{margin:0;}/*!sc*/ main{display:block;}/*!sc*/ h1{font-size:2em;margin:0.67em 0;}/*!sc*/ hr{box-sizing:content-box;height:0;overflow:visible;}/*!sc*/ pre{font-family:monospace,monospace;font-size:1em;}/*!sc*/ a{background-color:transparent;}/*!sc*/ abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}/*!sc*/ b,strong{font-weight:bolder;}/*!sc*/ code,kbd,samp{font-family:monospace,monospace;font-size:1em;}/*!sc*/ small{font-size:80%;}/*!sc*/ sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}/*!sc*/ sub{bottom:-0.25em;}/*!sc*/ sup{top:-0.5em;}/*!sc*/ img{border-style:none;}/*!sc*/ button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}/*!sc*/ button,input{overflow:visible;}/*!sc*/ button,select{text-transform:none;}/*!sc*/ button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button;}/*!sc*/ button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}/*!sc*/ button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText;}/*!sc*/ fieldset{padding:0.35em 0.75em 0.625em;}/*!sc*/ legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}/*!sc*/ progress{vertical-align:baseline;}/*!sc*/ textarea{overflow:auto;}/*!sc*/ [type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}/*!sc*/ [type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto;}/*!sc*/ [type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}/*!sc*/ [type="search"]::-webkit-search-decoration{-webkit-appearance:none;}/*!sc*/ ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}/*!sc*/ details{display:block;}/*!sc*/ summary{display:list-item;}/*!sc*/ template{display:none;}/*!sc*/ [hidden]{display:none;}/*!sc*/ data-styled.g1[id="sc-global-ecVvVt1"]{content:"sc-global-ecVvVt1,"}/*!sc*/ :root{--content-width:120rem;--font-main:'fakt-web',sans-serif;}/*!sc*/ body{box-sizing:border-box;font-family:var(--font-main);}/*!sc*/ html{font-size:10px;}/*!sc*/ data-styled.g176[id="sc-global-UYKKO1"]{content:"sc-global-UYKKO1,"}/*!sc*/ @font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:local('Inter-Regular'),url('https://cdn.auth0.com/website/fonts/Inter-Regular.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:local('Inter-Medium'),url('https://cdn.auth0.com/website/fonts/Inter-Medium.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:local('Inter-Bold'),url('https://cdn.auth0.com/website/fonts/Inter-Bold.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'SpaceGrotesk';font-style:normal;font-weight:500;font-display:swap;font-feature-settings:'zero','ss02' off,'ss03' on,'ss04' on;src:local('SpaceGrotesk-Medium'),url('https://cdn.auth0.com/website/fonts/SpaceGrotesk-Medium.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'SpaceGrotesk';font-style:normal;font-weight:600;font-display:swap;font-feature-settings:'zero','ss02' off,'ss03' on,'ss04' on;src:local('SpaceGrotesk-SemiBold'),url('https://cdn.auth0.com/website/fonts/SpaceGrotesk-SemiBold.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'RobotoMono';font-style:normal;font-weight:400;font-display:swap;src:local('RobotoMono-Regular'),url('https://cdn.auth0.com/quantum-fonts/lib/0.0.9/roboto-mono/files/roboto-mono-latin-400-normal.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'Aeonik';font-style:normal;font-weight:400;font-display:swap;src:local('Aeonik-Regular'),url('https://cdn.auth0.com/website/cic-homepage/fonts/Aeonik-Regular.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'Aeonik';font-style:normal;font-weight:500;font-display:swap;src:local('Aeonik-Medium'),url('https://cdn.auth0.com/website/cic-homepage/fonts/Aeonik-Medium.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'Aeonik';font-style:normal;font-weight:500;font-display:swap;src:local('Aeonik-Medium'),url('https://cdn.auth0.com/website/cic-homepage/fonts/Aeonik-Medium.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'Aeonik Mono';font-style:normal;font-weight:400;font-display:swap;src:local('AeonikMono-Regular'),url('https://cdn.auth0.com/website/okta-fonts/AeonikMono-Regular.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'Aeonik Mono';font-style:normal;font-weight:500;font-display:swap;src:local('AeonikMono-Medium'),url('https://cdn.auth0.com/website/okta-fonts/AeonikMono-Medium.ttf') format('woff2');}/*!sc*/ data-styled.g177[id="sc-global-gFuWBX1"]{content:"sc-global-gFuWBX1,"}/*!sc*/ html{font-size:62.5%;}/*!sc*/ html h1,html h2,html h3,html h4,html h5,html h6{font-feature-settings:'zero';}/*!sc*/ a:focus{outline:-webkit-focus-ring-color auto 0.2rem;outline-offset:0.1rem;}/*!sc*/ data-styled.g178[id="sc-global-khyXKm1"]{content:"sc-global-khyXKm1,"}/*!sc*/ </style></head><body><div id="__next"><!--$--><!--/$--><div id="asset-library-root"></div><iframe id="drift-iframe" src="https://drift.app.auth0.com/drift-iframe" title="Drift iframe" style="width:0;height:0;border:none;position:absolute"></iframe><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W7FRLJ" height="0" width="0" style="display:none;visibility:hidden" title="gtm"></iframe></noscript></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"pageProps":{"lastAuthor":"mariano.cibelli@auth0.com","lastUpdated":"2021-12-13T12:42:58.428Z","pageType":"Developers","name":"Developers","path":"developers","metadata":{"title":"Auth0 for developers - Quickly implement identity management","description":"Implement Auth0 in minutes. Use our out-of-the-box authentication and authorization platform or customize and extend to solve any of your app login needs.","image":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4NQZAjRmk5CnhpSfUVDrI/c7e531a492f272be74ead361b7d5723a/og-card.png","mimeType":"image/png"},"noindex":false},"withAB":["dummy-data-test"],"blocks":[{"type":"Hero","props":{"title":"Simple to Implement, Easy to Extend","subtitle":"We provide an out-of-the-box authentication \u0026 authorization platform for any application — with the extensibility to fit your needs.","primaryButtonText":"Start Building","secondaryButtonText":"View Docs","tertiaryButtonText":"View Auth0 Code Samples and Guides","animatedVideoDesktopVersion":{"url":"https://videos.ctfassets.net/kbkgmx9upatd/5Kx1wcsVwd2Gf91WL2OP50/fa88b04f47408854429101d4d85d6201/desktopVideo.mp4","mimeType":"video/mp4"},"animatedVideoTabletVersion":{"url":"https://videos.ctfassets.net/kbkgmx9upatd/5TUxQayH1bBpverWm6BZKL/d96f0fdacefd779d2fbab61c4598b751/tabletVideo.mp4","mimeType":"video/mp4"},"imageMobileVersion":{"url":"https://images.ctfassets.net/kbkgmx9upatd/1IzKMd7DSVr32t4eukie0K/9d4adc016e8bd0b390e44066a30c35b8/graphic-sm.png","mimeType":"image/png"},"brandItem":[{"name":"atlassian","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/Uq3LCglUKTGSY1CGSKyhY/f9fcc22a308de0c2ec2b499dcd122cf3/atlassian-icon.svg","mimeType":"image/svg+xml"}},{"name":"mozilla","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/3HcF0vPxseRDvZlV2gdfLS/b9508bb76556467da612b6b09f2fcb78/mozilla-icon.svg","mimeType":"image/svg+xml"}},{"name":"arduino","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4AeI2yHs4ljjoNSxJLQi2X/193d5037705e615374ee626cd42c88ee/arduino-icon.svg","mimeType":"image/svg+xml"}},{"name":"cloudbees","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5Z5vY6htYCyVQ16PLplDqF/5a430db1ebbe239edcc54e0847214fdf/cloudbees-white.svg","mimeType":"image/svg+xml"}},{"name":"amd","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5XyKsJ23e2ITtSfHis2gHj/ed59a62c52e7396a15060cdf341a96d0/amd-icon.svg","mimeType":"image/svg+xml"}}],"caption":"Integrate your application with Auth0. To log in, users are redirected to Auth0's customizable login page. Once the user logs in successfully, Auth0 redirects them back to your app, returning a token with their auth \u0026 user information.","primaryButtonUrl":"https://auth0.com/signup","secondaryButtonUrl":"https://auth0.com/docs","tertiaryButtonUrl":"https://auth0.com/developers/hub"}},{"type":"ImplementAuth0","props":{"label":{"url":"https://images.ctfassets.net/kbkgmx9upatd/gGu0PhvBTKbzzen7jShek/6adae251d995f9cc91c80e66970914b1/your-app-label.svg","mimeType":"image/svg+xml"},"title":"Implement Auth0 in Any Application in Just Five Minutes","subtitle":"With a few lines of code you can have Auth0 integrated in any app written in any language, and any framework. We provide 30+ SDKs \u0026 Quickstarts to help you succeed on your implementation","languageTab":[{"langType":"javascript","title":"Javascript","code":"const login = async () =\u003e {\n await auth0.loginWithRedirect({\n redirect_uri: window.location.origin\n });\n};"},{"langType":"objectivec","title":"iOS","code":"Auth0\n .webAuth()\n .scope(\"openid profile\")\n .audience(\"https://YOUR_DOMAIN/userinfo\")\n .start {\n switch $0 {\n case .failure(let error):\n // Handle the error\n print(\"Error: \\(error)\")\n case .success(let credentials):\n // Do something with credentials e.g.: save them.\n // Auth0 will automatically dismiss the login page\n print(\"Credentials: \\(credentials)\")\n }\n }"},{"langType":"java","title":"Android","code":"private void login() {\n WebAuthProvider.login(auth0)\n .withScheme(\"demo\")\n .withAudience(String.format(\"https://%s/userinfo\", getString(R.string.com_auth0_domain)))\n .start(MainActivity.this, new AuthCallback() {\n @Override\n public void onFailure(@NonNull Dialog dialog) {\n // Show error Dialog to user\n }\n\n @Override\n public void onFailure(AuthenticationException exception) {\n // Show error to user\n }\n\n @Override\n public void onSuccess(@NonNull Credentials credentials) {\n // Store credentials\n // Navigate to your main activity\n }\n });\n}"},{"langType":"javascript","title":"Angular","code":"login(redirectPath: string = '/') {\n // A desired redirect path can be passed to login method\n // (e.g., from a route guard)\n // Ensure Auth0 client instance exists\n this.auth0Client$.subscribe((client: Auth0Client) =\u003e {\n // Call method to log in\n client.loginWithRedirect({\n redirect_uri: '\\${window.location.origin}',\n appState: { target: redirectPath }\n });\n });\n}"}],"techStack":[{"name":"java","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4xIsM5mIRykaiSqmYy088U/95113d901254767a02fad3083c663dcc/Java.svg","mimeType":"image/svg+xml"}},{"name":"Angular 2","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/3pyxq1q4usqeE2cAi0M82q/b51048d1e5e805ad8c3e413c20ebd6e0/Angular-2.svg","mimeType":"image/svg+xml"}},{"name":"Node.js","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4OW8KIbCXeEAAycqAouC6A/58318f43c234d06760856eb0c07a6324/Nodejs.svg","mimeType":"image/svg+xml"}},{"name":"iOS","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/51rbQUYiTC2sOyo4kw0MMO/3a56d3a8f6f2161a103ab77bda16462b/iOS.svg","mimeType":"image/svg+xml"}},{"name":"Android","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5s0UFZWuWIoas2sAKs66m4/d39ae93819c4e59c3b92f38d17311ef8/Android.svg","mimeType":"image/svg+xml"}},{"name":"Ruby","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5okuxxS8M0SQIECEgEEW8m/f7b9fd31d97290965b450e3c5449f66d/Ruby.svg","mimeType":"image/svg+xml"}},{"name":"JavaScript","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/GqM6Sk1Hoa4UcOSO82ISk/48c702e2b2b60521fc9c3ac3a42c5d2d/JavaScript.svg","mimeType":"image/svg+xml"}},{"name":"PHP","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/2Z7xc6FYUwKQqMmUAaYAKe/eee6b2543fd227bef6d393782237611e/php.svg","mimeType":"image/svg+xml"}},{"name":"React","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/380OiAScAUuaUOsmK8cGuI/20b0deaa89a843ccabaa803a4146ce9d/React.svg","mimeType":"image/svg+xml"}},{"name":"React Native","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/21lJCWIGq0GiqWIeCI6yom/2817772b5907105914a94f4bb2b0f4aa/React-Native.svg","mimeType":"image/svg+xml"}},{"name":"Vue","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/PCf6qcCzO8sq2cSC2Uuei/3d6043d9b5fe27fe492b11825a446dc0/Vue.svg","mimeType":"image/svg+xml"}},{"name":"ASP.NET","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4MjjilugV2Ckac28KSKi04/81d9ebf4f673faeb39038f6643686058/ASP.NET.svg","mimeType":"image/svg+xml"}},{"name":"Go","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4yrWHjS5uUqS42AEIGwcyY/eb665b5127d3df0e7dd382c20560c5b6/Go.svg","mimeType":"image/svg+xml"}},{"name":"Ruby on Rails","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5W3ec01HawqUKi0sKI4uS4/5967d55dfc0556d92f557a58fc1004d7/Ruby-on-Rails.svg","mimeType":"image/svg+xml"}},{"name":"Python","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/3X4KF9Ic8UeYMk62oKmQk2/5ceaf1a113ac5f470e5cb2d46f7fefd0/Python.svg","mimeType":"image/svg+xml"}},{"name":"Ionic 3","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/6zPTixchlCiiuIOiIWmmQY/51564f5084e3009ce338b3060f4c9b29/Ionic-3.svg","mimeType":"image/svg+xml"}}],"caption":"Supporting any technology stack","ctaUrl":"https://auth0.com/docs/quickstarts/","ctaText":"See all quickstart","blockId":"your-app"}},{"type":"UniversalLogin","props":{"label":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5gABhgBgb7gwAmOLlINV4/37855b6b924bdc30e624831eeb8b1dc4/ul-label.svg","mimeType":"image/svg+xml"},"title":"A Customizable Out-of-the-Box Login Experience","subtitle":"Universal Login is a centralized login page where your users are authenticated. You can dynamically add new capabilities to it, such as social login and multi-factor authentication (MFA), without making any changes to your app’s code","buttonCtaText":"Launch Auth0 Flows","buttonCtaUrl":"https://flows.auth0.com/","companyTitle":"What's your company name?","companyText":"Enter your company name to display it in the login box.","colorsTitle":"Colors","colorsText":"You can use your company's brand colors, or any others, to customize the login box look \u0026 feel.","providersTitle":"Identity Provider","providersText":"You can add any of the 30+ social providers that Auth0 supports out of the box. Additionally, you can add any OAuth2 Authorization Server you need.","linkCtaText":"Learn About Advanced Customization","linkCtaUrl":"https://auth0.com/docs/universal-login/advanced-customization","tooltipText":"Customize the login box","blockId":"universal-login"}},{"type":"UserManagement","props":{"label":{"url":"https://images.ctfassets.net/kbkgmx9upatd/7qSiNYE3TVZRNAYa5lafBl/acb5eeb6ac8b506f9138fc6d83939938/users-label.svg","mimeType":"image/svg+xml"},"title":"Easily Manage Your User Data \u0026 Permissions","subtitle":"Auth0 stores a variety of information on your users that is easily accessible to you. Administrators can manage user identities including password resets, creating, blocking and deleting users via the Users Dashboard or via the Auth0 API.","ctaText":"User Management Docs","ctaUrl":"https://auth0.com/docs/users","sections":[{"background":{"url":"https://images.ctfassets.net/kbkgmx9upatd/6MwwB3Yu4fKZirk8a6H1Xh/36b8e065d26f73774a8fa77000fd3647/bg-users.png","mimeType":"image/png"},"highlight":{"url":"https://images.ctfassets.net/kbkgmx9upatd/7qdNvMe86rzgkAoT4AxRL6/a7d64a20f485deb673b646d7b63bb561/userssearch.png","mimeType":"image/png"},"mobile":{"url":"https://images.ctfassets.net/kbkgmx9upatd/jLtlUmVsxQGsajsO3dtGW/05bcae31bcf2f596380d49a703c27d2a/mb-usersearch.png","mimeType":"image/png"},"title":"Powerful Search","description":"Search across all your users using a simple, yet powerful, query language."},{"background":{"url":"https://images.ctfassets.net/kbkgmx9upatd/7cbtuP4KEN0mnlJt7qBrLD/3de31c3d674c6a274567e8c9ad67aeef/bg-profile.png","mimeType":"image/png"},"highlight":{"url":"https://images.ctfassets.net/kbkgmx9upatd/3jkO3osIPlbxPOX6TPd8xv/1e3b847315a6ed02c5ec38f31fd184b8/useractions.png","mimeType":"image/png"},"mobile":{"url":"https://images.ctfassets.net/kbkgmx9upatd/31spAun1shuHuWYQx5Fshi/8350a54f9d3132953a098ab09c5d3c50/mb-usermanage.png","mimeType":"image/png"},"title":"Manage Users","description":"Edit user information, custom attributes, reset their password and second factors, and more."},{"background":{"url":"https://images.ctfassets.net/kbkgmx9upatd/75UhWK9cQ2z0p45XTlpfem/89ba102496dc6f3a990689c2d4d54ff3/bg-users.png","mimeType":"image/png"},"highlight":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5sQtLMydVgWRPSamtgWetb/bd6c1052d647a6351325b040292befc2/roleactions.png","mimeType":"image/png"},"mobile":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5mkwQY2TtTm1ZfJORTsCGd/eb0d16f062ad44f4c2c3ec50a41c1ec1/mb-userassign.png","mimeType":"image/png"},"title":"Assign Roles \u0026 Permissions","description":"Manage what users have access to, through roles and permissions."}],"blockId":"user-management"}},{"type":"Rules","props":{"label":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4IoTp9qAcuLnJBB9vByc1i/d473c723aac59be9c74614a7173833ee/rules-label.svg","mimeType":"image/svg+xml"},"title":"Control \u0026 Customize — Extend with Code","subtitle":"All applications and scenarios are different. Auth0\\'s Rules, Extensions, and Hooks extend the functionality of Auth0\\'s base product to adapt it to your company needs and integrate it with other applications and services.","infoOne":"1: The user object stores information about the logged in user, returned by the identity provider. It is generated when a user authenticates, before rules run.","infoTwo":"2: The context object stores contextual information about the current authentication transaction, such as the user's IP address, application, or location.","infoThree":"3: A function that will run after your main code is executed.","infoFour":"4: Rules run in a JavaScript sandbox. The sandbox supports the ECMAScript 6 language and a large number of Node.js (version 8+) modules that you can import.","caption":"Rules and Hooks are JavaScript code snippets that run in Auth0 as part of the authentication pipeline. They empower you to control and customize any stage of the authentication pipeline.","ctaText":"Extending Auth0","ctaUrl":"https://auth0.com/docs/extensions","leftSideImage":{"url":"https://images.ctfassets.net/kbkgmx9upatd/3gnqjLSUM1HUB32cDoGSGS/23be4d75eb8aadd12f77730b51abec3e/your-app.svg","mimeType":"image/svg+xml"},"rightSideImage":{"url":"https://images.ctfassets.net/kbkgmx9upatd/2k9flYmKGXMn1b9bmlc6ji/00c924fd235ccd08a5f9ad0bd17f09cb/token2.svg","mimeType":"image/svg+xml"},"mobileImage":{"url":"https://images.ctfassets.net/kbkgmx9upatd/7jOq1HVgMjZ78ojhcMnGQh/93ac1b10079ee1be791138365d4c75ba/mobile.svg","mimeType":"image/svg+xml"},"blockId":"rules"}},{"type":"ImplementAuth0","props":{"label":{"url":"https://images.ctfassets.net/kbkgmx9upatd/TqOpIGHuvDQ8qXrnpyFKm/d8a45561bb73abc659c75286f34779e2/api-label.svg","mimeType":"image/svg+xml"},"title":"Calling APIs and External Resources","subtitle":"Once your user authenticates, Auth0 will generate an ID Token and an Access Token that will be passed back to your application. The Access Token can then be used to call your API and/or any external resource.","languageTab":[{"langType":"javascript","title":"Javascript","code":"const callApi = async () =\u003e {\n try {\n\n // Get the access token from the Auth0 client\n const token = await auth0.getTokenSilently();\n\n // Make the call to the API, setting the token\n // in the Authorization header\n const response = await fetch(\"/api/external\", {\n headers: {\n Authorization: \\`Bearer \\${token}\\`\n }\n });\n\n // Fetch the JSON result\n const responseData = await response.json();\n\n // Display the result in the output element\n const responseElement = document.getElementById(\"api-call-result\");\n\n responseElement.innerText = JSON.stringify(responseData, {}, 2);\n\n } catch (e) {\n // Display errors in the console\n console.error(e);\n }\n};"},{"langType":"objectivec","title":"iOS","code":"let token = ... // The accessToken you stored after authentication\nlet url = URL(string: \"your api url\")! // Set to your Protected API URL\nvar request = URLRequest(url: url)\n\nrequest.addValue(\"Bearer \\(token)\", forHTTPHeaderField: \"Authorization\")\n\nlet task = URLSession.shared.dataTask(with: request) { data, response, error in\n // Parse the response\n}\ntask.resume()"},{"langType":"java","title":"Android","code":"private static final String API_URL = \"localhost:8080/secure\";\nOkHttpClient client = new OkHttpClient();\nRequest request = new Request.Builder()\n .get()\n .url(API_URL)\n .addHeader(\"Authorization\", \"Bearer \" + accessToken)\n .build();\n\nclient.newCall(request).enqueue(new Callback() {\n @Override\n public void onFailure(Request request, final IOException e) {\n // Show error\n }\n\n @Override\n public void onResponse(final Response response) throws IOException {\n if (response.isSuccessful()) {\n // API call success\n } else {\n // API call failed. Check http error code and message\n }\n }\n});"},{"langType":"html","code":"\u003ctemplate\u003e\n \u003cdiv\u003e\n \u003cbutton @click=\"callApi\"\u003eCall\u003c/button\u003e\n \u003cp\u003e{{ apiMessage }}\u003c/p\u003e\n \u003c/div\u003e\n\u003c/template\u003e\n\n\u003cscript\u003e\n import axios from \"axios\";\n\n export default {\n name: \"external-api\",\n data() {\n return {\n apiMessage: \"\"\n };\n },\n methods: {\n async callApi() {\n // Get the access token from the auth wrapper\n const token = await this.$auth.getTokenSilently();\n\n // Use Axios to make a call to the API\n const { data } = await axios.get(\"/api/external\", {\n headers: {\n Authorization: \\`Bearer \\${token}\\` // send the access token through the 'Authorization' header\n }\n });\n\n this.apiMessage = data;\n }\n }\n };\n\u003c/script\u003e","title":"Vue.js"}],"techStack":[{"name":"asp","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5HhtivOWJQ36PzpcwSXsqE/c65e086d2f518b25c2f58e9fa70d7314/asp.png","mimeType":"image/png"}},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/1dBqVIirEuZvPhKcVqaDU6/88fbe00deb0da658b5f9546c03439d4a/falcor.png","mimeType":"image/png"},"name":"falcor"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/6sTnCDzgnKJtrF4H2nJ5Ms/6affbf577d827697a77eb60db083bd8d/go.png","mimeType":"image/png"},"name":"go"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4QkAlBcRRICUpAfUFvEiUv/8e5e77680773f310cf1d2dea25d808b5/hapi.png","mimeType":"image/png"},"name":"hapi"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/trd7kibVk1cFrWqQTmCMU/84e9074b12bbc913b05973c30b64a155/laravel.png","mimeType":"image/png"},"name":"laravel"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/2UE9w8S3yfRYRWq0A3fcZ3/d2ec9726316649c683a33cf5e793255b/node.png","mimeType":"image/png"},"name":"node"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4JKTUVYfqi9esDy1U126Wn/d673bf71ff675818fb219e6c446ec473/php.png","mimeType":"image/png"},"name":"php"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/NXJvT4Y97w6sIIy4BWvt8/be859b47c629e659969501403413f488/python.png","mimeType":"image/png"},"name":"python"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/7xfqHP13LjWmlu7rnJz7p1/be5e65f74df0e52d95c6a9c876f3deb0/ruby-on-rails.png","mimeType":"image/png"},"name":"ruby on rails"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/7r2OuAWMPEuDRwvqySNFTA/3e2730f70433d2de3b99eb95b89ecc12/ruby.png","mimeType":"image/png"},"name":"ruby"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/7q9T5XEWNr3pRiFQDI2v9z/03f2436d5a99cd53cdc83e292cc33fc3/spring.png","mimeType":"image/png"},"name":"spring"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4vtmz2N0kLsgHS9gezwmeP/397da3dfbd32456e411ec652f3b41d6f/symfony.png","mimeType":"image/png"},"name":"symfony"}],"ctaText":"See All Quickstarts","ctaUrl":"https://auth0.com/docs/quickstarts/","caption":"API SDKs","blockId":"api"}},{"type":"HowAuth0Works","props":{"title":"How Auth0 Works","smallItem":[{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4p6lAgPK2HVbryfk4J7b6P/3e341b58839ea284a2ec7b4db434ed83/code.svg","mimeType":"image/svg+xml"},"title":"presignup","tooltipText":"Pre-Signup Rules"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5s1B5Jk4jmmSiNFTYUkFr4/cc480dbfc63cf2885636c00340873b31/code.svg","mimeType":"image/svg+xml"},"title":"postsignup","tooltipText":"Post-Signup Rules"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5IyQ00ijT7LNx52yLUG3sF/244f2fac010562c0bf826c279df2ae4e/mfa.svg","mimeType":"image/svg+xml"},"title":"optionalmfa","tooltipText":"Optional MFA"}],"topItem":[{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4GwjtvPNpv7Vz31T3uoKn7/6ae1adf4819c9a0df4063539ac526dee/your-app.svg","mimeType":"image/svg+xml"},"title":"Your App","tooltipText":"You integrate your\\nApp with Auth0.","animationDelay":"0"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/3fbMcwj6TspqARGL6pIQoE/4a4d6c1ce0bf0da1f5038844e02eba71/ul.svg","mimeType":"image/svg+xml"},"title":"Universal Login","tooltipText":"To log in, users are redirected to the customizable\\nUniversal Login page. Once they successfully log in,\\nthey are redirected back to your app with an ID\\nToken and the Access Token.","animationDelay":"0.2"},{"title":"Users","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/279K5zun05p5PYGUZ6w8Zc/a07933bf6137350cb13a9dd42ee198f8/users.svg","mimeType":"image/svg+xml"},"tooltipText":"Administrators can manage user\\nidentities from the User Dashboard.","animationDelay":"1.1"},{"title":"Rules","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/6djCDPjIqIjRmj7UDle2l6/a33bdb723772c7dcb504309dfb3abbd1/rules.svg","mimeType":"image/svg+xml"},"tooltipText":"The authentication and authorization pipeline can\\nbe easily customized and adapted to your needs by\\nAuth0's extensibility options, such as Rules.","animationDelay":"1.5"},{"title":"API","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/2DafAba8VIHr50DtRQ4Pgi/761955f084e164e28e0f6d0a9f6ef78f/api.svg","mimeType":"image/svg+xml"},"tooltipText":"Finally, you can use the Access\\nToken to call the secured APIs your\\napp needs.","animationDelay":"2.2"}],"contentBranchOne":[{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/7kSG66D4ILaLNPeyB0HuXu/cce30f873294047d284c548e67b48116/custom.svg","mimeType":"image/svg+xml"},"title":"custom Code","tooltipText":"Code in any additional\\nIdentity Providers","animationDelay":"0.7"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/1ysARNKIDgWv0I1F4LeyCR/0181d0bc43c6fc18d394377b8dfa8a25/additionallogin.svg","mimeType":"image/svg+xml"},"title":"Extra providers","tooltipText":"+30 Built in Identity\\nProviders","animationDelay":"0.6"},{"title":"known providers","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/14O9ABIZryM3jTh4irOHBw/7c85cfeed669143bb9953c899452fd13/google.png","mimeType":"image/png"},"tooltipText":"Federated Identity\\nProviders","animationDelay":"0.5"},{"title":"data base","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/2xeWc3a8DoqHBur4K9Tqdg/841a2a60ea0e9dabed71af42ff10a7b2/database.svg","mimeType":"image/svg+xml"},"tooltipText":"Auth0 Database","animationDelay":"0.5"},{"title":"Custom data base","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/78uWQ87Ewz3yzFioinTPlv/13b222e2a9248624d62b572f218e19bb/custom.svg","mimeType":"image/svg+xml"},"tooltipText":"Custom Database","animationDelay":"0.6"}],"contentBranchTwo":[{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4vTpEKkLtaeXLgqiHZSehr/8a6aa038ddb722852f7c8e1fa506142d/clearbit.png","mimeType":"image/png"},"title":"easyconnect","tooltipText":"Easily connect to\\nAPIs and services","animationDelay":"1.8"},{"icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4BfQjGauKgEnx3U1q8TFJj/7f7e70aa22b65c2cd993c08ba7f081ff/custom.svg","mimeType":"image/svg+xml"},"title":"Post Rules","tooltipText":"Post Authentication\\nRules","animationDelay":"1.8"}]}},{"type":"ThreeCards","props":{"title":"Check Out What’s New","cardTitleOne":"Identity and OAuth","cardImageOne":{"url":"https://images.ctfassets.net/kbkgmx9upatd/4j9vEUbMslc0bcb1xzeAyq/342c864bc2d3a099e3cf3d003688047e/oauth.png","mimeType":"image/png"},"cardLinkUrlOne":"https://auth0.com/resources/ebooks/oauth-openid-connect-professional-guide","cardTitleTwo":"JWT","cardImageTwo":{"url":"https://images.ctfassets.net/kbkgmx9upatd/5pgeAVtNTY0EQbFjsRY1tN/f93281510fd5617cb3288de94dd55e64/jwt2.png","mimeType":"image/png"},"cardLinkUrlTwo":"https://auth0.com/resources/ebooks/jwt-handbook","cardTitleThree":"Avocado Labs","cardImageThree":{"url":"https://images.ctfassets.net/kbkgmx9upatd/3eN5xNwmo1ojcMx2wWje18/d0e8b7222ab586babd80cfebdb150182/avocado-labs.png","mimeType":"image/png"},"cardLinkUrlThree":"https://auth0.com/blog/avocado-labs/"}},{"type":"FourColumns","props":{"items":[{"name":"Quickstarts","text":"Get started using Auth0. Implement authentication for any kind of application in minutes.","link":"https://auth0.com/docs/quickstarts/","linkText":"Check our Quickstarts","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/7BA1lpoM9df4h5gC7u130v/499cdca67dc5443145831708284a03db/quickstarts.svg","mimeType":"image/svg+xml"},"iconSmall":{"url":"https://images.ctfassets.net/kbkgmx9upatd/7ikXBPOQGb7C3y9J6MPoip/a58bcb45cc9881b29eaeaf4323642b37/quickstarts2.svg","mimeType":"image/svg+xml"}},{"name":"API Docs","text":"Learn about Auth0's Management and Authentication APIs.","link":"https://auth0.com/docs/api/info","linkText":"Check our Docs","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/1gm4QiGbsLG4rdryVDeS5U/af333c5c7ca976be1b57380c484c3a91/docs.svg","mimeType":"image/svg+xml"},"iconSmall":{"url":"https://images.ctfassets.net/kbkgmx9upatd/6EvPknGSH1CeyCHv2dFfiZ/60a51b893f6dbea82e0254e5b9fc3727/docs2.svg","mimeType":"image/svg+xml"}},{"name":"Community","text":"Join the conversation about Auth0 in our community forums.","link":"https://community.auth0.com/","linkText":"Join our Community","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/1seefiTjLQDMtaYi9KxifP/94e9aca27cff5c1d2f363e603f4d3170/community.svg","mimeType":"image/svg+xml"},"iconSmall":{"url":"https://images.ctfassets.net/kbkgmx9upatd/6avBNCgX4NSPn1D9JDAflr/6e0900af2bb79f8f1343d4fec48cb5c6/community2.svg","mimeType":"image/svg+xml"}},{"name":"Blog","text":"Learn new technologies and keep up with the latest on our Developer blog.","link":"https://auth0.com/blog","linkText":"Check our Blog","icon":{"url":"https://images.ctfassets.net/kbkgmx9upatd/3OO9MTy1YZ1NTfVfn7iDH/5d537af62aa09e74cf11eed50bd7ec86/blog-v2.svg","mimeType":"image/svg+xml"},"iconSmall":{"url":"https://images.ctfassets.net/kbkgmx9upatd/1qgz47fd8W6ie8AWazRPl4/ed4300567e405bd5fd099caf8313b42e/blog2.svg","mimeType":"image/svg+xml"}}]}},{"type":"SideNavigation","props":{"navItem":[{"blockId":"your-app","color":"yourAppGray","title":"Your App"},{"color":"universalPink","blockId":"universal-login","title":"Universal Login"},{"blockId":"user-management","color":"usersMustard","title":"Users"},{"blockId":"rules","color":"rulesBlue","title":"Rules"},{"blockId":"api","color":"apiLavander","title":"API"}]}},{"type":"IdentityBanner","props":{"title":"Secure access for everyone.","subTitle":"But not just anyone.","primaryCtaText":"Start Building For Free","primaryCtaUrl":"https://auth0.com/signup","secondaryCtaText":"Explore Pricing","secondaryCtaUrl":"https://auth0.com/pricing"}}],"langPaths":{"en":"developers","ja":"jp/developers","de":"de/developers","fr":"fr/developers","es":"es/developers","pt":"pt/developers"},"lang":"en","utmCookies":{"utm_medium":""}},"inhouseExperiments":{},"anonId":""},"__N_SSP":true},"page":"/withServerSide","query":{"path":"developers","isWithExperiment":"true"},"buildId":"4H_heGAWuDzoSJsdz_pIt","assetPrefix":"/b2b-enterprise-identity-management/vercel","isFallback":false,"isExperimentalCompile":false,"gssp":true,"scriptLoader":[]}</script></body></html>