CINXE.COM

Developer Center | Auth0

<!DOCTYPE html><html lang="en"><head><title>Developer Center | Auth0</title><meta name="description" content="Learn about Auth0, explore tutorials, download code samples, connect with us, find resources and more."/><meta property="og:image" content="https://images.ctfassets.net/kbkgmx9upatd/190V5l5clZdW8ntJwoDhps/7c190b48872c82180a25260763b78eca/thumb-dev-center__1_.png"/><meta property="og:type" content="website"/><meta property="og:title" content="Developer Center | Auth0"/><meta property="og:description" content="Learn about Auth0, explore tutorials, download code samples, connect with us, find resources and more."/><meta property="og:url" content="https://developer.auth0.com/"/><meta name="viewport" content="initial-scale=1.0, width=device-width"/><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes"/><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 mask-icon" type="image/png" href="https://cdn.auth0.com/website/website/favicons/auth0-favicon.png"/><link rel="canonical" href="https://developer.auth0.com/"/><link rel="preload" href="https://gdpr-service.herokuapp.com/get-country-region" as="fetch" crossorigin="anonymous"/><link rel="preload" as="image" imagesrcset="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=3840&amp;q=75 3840w" imagesizes="100vw"/><link rel="preload" as="image" imagesrcset="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=3840&amp;q=75 3840w" imagesizes="100vw"/><link rel="preload" as="image" imagesrcset="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=3840&amp;q=75 3840w" imagesizes="100vw"/><link rel="preload" as="image" imagesrcset="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=3840&amp;q=75 3840w" imagesizes="100vw"/><meta name="next-head-count" content="18"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-98dcfa552a874bbe.js" defer=""></script><script src="/_next/static/chunks/framework-5f4595e5518b5600.js" defer=""></script><script src="/_next/static/chunks/main-c927c2c03e921fa6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-4b9c85ef891dd511.js" defer=""></script><script src="/_next/static/chunks/9236dd9e-afc98504b65c1036.js" defer=""></script><script src="/_next/static/chunks/709-bc584585717976ba.js" defer=""></script><script src="/_next/static/chunks/987-028fd12efd16cbdb.js" defer=""></script><script src="/_next/static/chunks/408-c09ec1dedaadf5e9.js" defer=""></script><script src="/_next/static/chunks/995-5c6ed4df67a768cd.js" defer=""></script><script src="/_next/static/chunks/550-0c5ffd8622c83f5c.js" defer=""></script><script src="/_next/static/chunks/539-a99a231174c570b7.js" defer=""></script><script src="/_next/static/chunks/162-774d7c0db772ea82.js" defer=""></script><script src="/_next/static/chunks/pages/developers-67a2a3ec91ac9d97.js" defer=""></script><script src="/_next/static/DJM-GOq0kjpF8lG0dUQU7/_buildManifest.js" defer=""></script><script src="/_next/static/DJM-GOq0kjpF8lG0dUQU7/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.11">@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:500;font-display:swap;src:local('Aeonik-Medium'), url('https://cdn.auth0.com/website/okta-fonts/Aeonik-Medium.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/okta-fonts/Aeonik-Regular.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'Aeonik';font-style:normal;font-weight:700;font-display:swap;src:local('Aeonik-Bold'), url('https://cdn.auth0.com/website/okta-fonts/Aeonik-Bold.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'Aeonik';font-style:normal;font-weight:300;font-display:swap;src:local('Aeonik-Light'), url('https://cdn.auth0.com/website/okta-fonts/Aeonik-Light.woff2') format('woff2');}/*!sc*/ @font-face{font-family:'Aeonik Mono';font-style:normal;font-weight:400;font-display:swap;src:local('AeonikMono-Medium'), url('https://cdn.auth0.com/website/okta-fonts/AeonikMono-Medium.woff2') format('woff2');}/*!sc*/ *{box-sizing:border-box;}/*!sc*/ html{font-size:62.5%;font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}/*!sc*/ html body{margin:0;box-sizing:border-box;}/*!sc*/ html h1,html h2,html h3,html h4,html h5,html h6{font-feature-settings:'zero';}/*!sc*/ data-styled.g1[id="sc-global-fAoamI1"]{content:"sc-global-fAoamI1,"}/*!sc*/ .inRMJe{margin:0;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:transparent;border-color:#BDC4CF;border-radius:0.6rem;border-style:solid;color:#FFFFFF;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:1.6rem;line-height:2.4rem;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:1.2rem 3.2rem;width:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:all 0.25s cubic-bezier(0.4,0,0.2,1);transition:all 0.25s cubic-bezier(0.4,0,0.2,1);font-family:Inter,sans-serif;font-style:normal;font-weight:500;position:relative;overflow:hidden;}/*!sc*/ @media screen and (min-width:990px){.inRMJe{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}}/*!sc*/ .inRMJe:active{color:#FFFFFF80;border-color:#FFFFFF;}/*!sc*/ .inRMJe:hover{-webkit-transition:all 0.25s cubic-bezier(0.4,0,0.2,1);transition:all 0.25s cubic-bezier(0.4,0,0.2,1);border-color:#FFFFFF;color:#FFFFFF;background:transparent;cursor:pointer;}/*!sc*/ .dfvwwf{margin:0;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#635DFF;border-color:#635DFF;border-radius:0.6rem;border-style:solid;color:#FFFFFF;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:1.6rem;line-height:2.4rem;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:1.2rem 3.2rem;width:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:all 0.25s cubic-bezier(0.4,0,0.2,1);transition:all 0.25s cubic-bezier(0.4,0,0.2,1);font-family:Inter,sans-serif;font-style:normal;font-weight:500;position:relative;overflow:hidden;}/*!sc*/ @media screen and (min-width:990px){.dfvwwf{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}}/*!sc*/ .dfvwwf:active{color:#FFFFFF80;}/*!sc*/ .dfvwwf:hover{-webkit-transition:all 0.25s cubic-bezier(0.4,0,0.2,1);transition:all 0.25s cubic-bezier(0.4,0,0.2,1);color:#FFFFFF;background:#564ED1;cursor:pointer;}/*!sc*/ .dfvwwf:after{content:'→';padding-left:0.8rem;display:inline-block;}/*!sc*/ .iaAYJi{margin:0;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:transparent;border-color:#BDC4CF;border-radius:0.6rem;border-style:solid;color:#FFFFFF;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:1.4rem;line-height:2.4rem;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:0.3rem 1.6rem;width:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:all 0.25s cubic-bezier(0.4,0,0.2,1);transition:all 0.25s cubic-bezier(0.4,0,0.2,1);font-family:Inter,sans-serif;font-style:normal;font-weight:500;position:relative;overflow:hidden;}/*!sc*/ @media screen and (min-width:990px){.iaAYJi{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}}/*!sc*/ .iaAYJi:active{color:#FFFFFF80;border-color:#FFFFFF;}/*!sc*/ .iaAYJi:hover{-webkit-transition:all 0.25s cubic-bezier(0.4,0,0.2,1);transition:all 0.25s cubic-bezier(0.4,0,0.2,1);border-color:#FFFFFF;color:#FFFFFF;background:transparent;cursor:pointer;}/*!sc*/ .hytZJl{margin:0;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#635DFF;border-color:#635DFF;border-radius:0.6rem;border-style:solid;color:#FFFFFF;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:1.4rem;line-height:2.4rem;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:0.3rem 1.6rem;width:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:all 0.25s cubic-bezier(0.4,0,0.2,1);transition:all 0.25s cubic-bezier(0.4,0,0.2,1);font-family:Inter,sans-serif;font-style:normal;font-weight:500;position:relative;overflow:hidden;}/*!sc*/ @media screen and (min-width:990px){.hytZJl{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}}/*!sc*/ .hytZJl:active{color:#FFFFFF80;}/*!sc*/ .hytZJl:hover{-webkit-transition:all 0.25s cubic-bezier(0.4,0,0.2,1);transition:all 0.25s cubic-bezier(0.4,0,0.2,1);color:#FFFFFF;background:#564ED1;cursor:pointer;}/*!sc*/ data-styled.g2[id="styled__Button-sc-1hwml9q-0"]{content:"inRMJe,dfvwwf,iaAYJi,hytZJl,"}/*!sc*/ .dyDPBJ.dyDPBJ.dyDPBJ{color:white;font-weight:600;}/*!sc*/ .lkxjzQ.lkxjzQ.lkxjzQ{-webkit-text-decoration:none;text-decoration:none;font-weight:500;}/*!sc*/ .IsPZI.IsPZI.IsPZI{-webkit-text-decoration:none;text-decoration:none;font-weight:500;margin:0;color:#F1F3F7;grid-area:title;}/*!sc*/ .dRFjEF.dRFjEF.dRFjEF{-webkit-text-decoration:none;text-decoration:none;margin:0;color:#BDC4CF;grid-area:description;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}/*!sc*/ .ecntYo.ecntYo.ecntYo{color:#3A3E44;}/*!sc*/ .flDGfr.flDGfr.flDGfr{color:#3A3E44;-webkit-text-decoration:none;text-decoration:none;font-weight:500;}/*!sc*/ .hJycHX.hJycHX.hJycHX{-webkit-text-decoration:none;text-decoration:none;padding:1.6rem 0;display:block;}/*!sc*/ .iObThW.iObThW.iObThW{font-weight:500;color:#1E212A;}/*!sc*/ .hQtlNv.hQtlNv.hQtlNv{color:#41454C;}/*!sc*/ .kfRWXJ.kfRWXJ.kfRWXJ{font-weight:500;}/*!sc*/ .cWWcHU.cWWcHU.cWWcHU{font-weight:500;margin:0;color:#FFFFFF;justify-self:left;}/*!sc*/ .jqbMqC.jqbMqC.jqbMqC{margin:0;color:#CCD2DC;}/*!sc*/ .MVvWs.MVvWs.MVvWs{color:#FFFFFF;}/*!sc*/ .gKfJeG.gKfJeG.gKfJeG{color:#1E212A;font-weight:500;position:relative;}/*!sc*/ .cecPQS.cecPQS.cecPQS{color:#FFFFFF;font-weight:500;position:relative;}/*!sc*/ .cvTglX.cvTglX.cvTglX{color:#E9ECF3;}/*!sc*/ .gGjTyi.gGjTyi.gGjTyi{color:#FFFFFF;margin:0 0 0.6rem;text-align:center;}/*!sc*/ .MxiNT.MxiNT.MxiNT{color:#F1F3F7;margin:0 0 1.2rem;}/*!sc*/ .dDpFyj.dDpFyj.dDpFyj{color:#BDC4CF;margin:0;}/*!sc*/ .espJyy.espJyy.espJyy{color:#8B929B;}/*!sc*/ .gcZFEt.gcZFEt.gcZFEt{color:#FFFFFF;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .lbSRKN.lbSRKN.lbSRKN{color:#8B929B;margin:0;}/*!sc*/ .gnrHDF.gnrHDF.gnrHDF{color:#8B929B;-webkit-text-decoration:none;text-decoration:none;margin-right:0;}/*!sc*/ .kmMmyj.kmMmyj.kmMmyj{color:#8B929B;-webkit-text-decoration:none;text-decoration:none;margin-right:0.4rem;}/*!sc*/ @media screen and (min-width:1200px){.kmMmyj.kmMmyj.kmMmyj{margin-right:0.8rem;}}/*!sc*/ data-styled.g3[id="utils-sc-11hlfw-0"]{content:"dyDPBJ,kHaByn,lkxjzQ,IsPZI,dRFjEF,ecntYo,flDGfr,hJycHX,iObThW,hQtlNv,kfRWXJ,cWWcHU,jqbMqC,MVvWs,gKfJeG,cecPQS,cvTglX,gGjTyi,MxiNT,dDpFyj,espJyy,gcZFEt,lbSRKN,gnrHDF,kmMmyj,"}/*!sc*/ .gEFelT{margin:0;color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.gEFelT{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.gEFelT{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#FFFFFF;}}/*!sc*/ .bMfiLw{margin:0 0 1.6rem 0;color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.bMfiLw{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.bMfiLw{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#FFFFFF;}}/*!sc*/ .dfDtUI{margin:0 0 1.6rem 0;color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.8rem;-webkit-letter-spacing:-0.005rem;-moz-letter-spacing:-0.005rem;-ms-letter-spacing:-0.005rem;letter-spacing:-0.005rem;line-height:2.8rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.dfDtUI{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.8rem;-webkit-letter-spacing:-0.005rem;-moz-letter-spacing:-0.005rem;-ms-letter-spacing:-0.005rem;letter-spacing:-0.005rem;line-height:2.8rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.dfDtUI{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.8rem;-webkit-letter-spacing:-0.005rem;-moz-letter-spacing:-0.005rem;-ms-letter-spacing:-0.005rem;letter-spacing:-0.005rem;line-height:2.8rem;color:#FFFFFF;}}/*!sc*/ .kfTahU{margin:0 0 1.6rem 0;color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.kfTahU{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.6rem;-webkit-letter-spacing:-0.001rem;-moz-letter-spacing:-0.001rem;-ms-letter-spacing:-0.001rem;letter-spacing:-0.001rem;line-height:2.4rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.kfTahU{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.6rem;-webkit-letter-spacing:-0.001rem;-moz-letter-spacing:-0.001rem;-ms-letter-spacing:-0.001rem;letter-spacing:-0.001rem;line-height:2.4rem;color:#FFFFFF;}}/*!sc*/ .bGdnob{margin:0;color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.bGdnob{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.6rem;-webkit-letter-spacing:-0.001rem;-moz-letter-spacing:-0.001rem;-ms-letter-spacing:-0.001rem;letter-spacing:-0.001rem;line-height:2.4rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.bGdnob{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.6rem;-webkit-letter-spacing:-0.001rem;-moz-letter-spacing:-0.001rem;-ms-letter-spacing:-0.001rem;letter-spacing:-0.001rem;line-height:2.4rem;color:#FFFFFF;}}/*!sc*/ .cmfwvL{margin:0 0 1.6rem 0;color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#41454C;padding:0;}/*!sc*/ @media screen and (min-width:990px){.cmfwvL{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#41454C;}}/*!sc*/ @media screen and (min-width:1200px){.cmfwvL{color:#41454C;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:400;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#41454C;}}/*!sc*/ data-styled.g8[id="styled__Paragraph-sc-165cfko-1"]{content:"gEFelT,bMfiLw,dfDtUI,kfTahU,bGdnob,cmfwvL,"}/*!sc*/ .jjxBdz{margin:0;color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2rem;-webkit-letter-spacing:-0.01rem;-moz-letter-spacing:-0.01rem;-ms-letter-spacing:-0.01rem;letter-spacing:-0.01rem;line-height:2.6rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.jjxBdz{color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2rem;-webkit-letter-spacing:-0.01rem;-moz-letter-spacing:-0.01rem;-ms-letter-spacing:-0.01rem;letter-spacing:-0.01rem;line-height:2.6rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.jjxBdz{color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2rem;-webkit-letter-spacing:-0.01rem;-moz-letter-spacing:-0.01rem;-ms-letter-spacing:-0.01rem;letter-spacing:-0.01rem;line-height:2.6rem;color:#FFFFFF;}}/*!sc*/ .egKny{margin:0 0 1.6rem 0;color:#1E212A;font-family:SpaceGrotesk,sans-serif;font-style:NORMAL;font-weight:600;font-size:4rem;-webkit-letter-spacing:-0.08rem;-moz-letter-spacing:-0.08rem;-ms-letter-spacing:-0.08rem;letter-spacing:-0.08rem;line-height:4.4rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.egKny{color:#1E212A;font-family:SpaceGrotesk,sans-serif;font-style:NORMAL;font-weight:600;font-size:4rem;-webkit-letter-spacing:-0.08rem;-moz-letter-spacing:-0.08rem;-ms-letter-spacing:-0.08rem;letter-spacing:-0.08rem;line-height:4.4rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.egKny{color:#1E212A;font-family:SpaceGrotesk,sans-serif;font-style:NORMAL;font-weight:600;font-size:5.6rem;-webkit-letter-spacing:-0.13rem;-moz-letter-spacing:-0.13rem;-ms-letter-spacing:-0.13rem;letter-spacing:-0.13rem;line-height:6.4rem;color:#FFFFFF;}}/*!sc*/ .gZYPyt{margin:0 0 1.6rem 0;color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2.8rem;-webkit-letter-spacing:-0.03rem;-moz-letter-spacing:-0.03rem;-ms-letter-spacing:-0.03rem;letter-spacing:-0.03rem;line-height:3.6rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.gZYPyt{color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2.8rem;-webkit-letter-spacing:-0.03rem;-moz-letter-spacing:-0.03rem;-ms-letter-spacing:-0.03rem;letter-spacing:-0.03rem;line-height:3.6rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.gZYPyt{color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2.8rem;-webkit-letter-spacing:-0.03rem;-moz-letter-spacing:-0.03rem;-ms-letter-spacing:-0.03rem;letter-spacing:-0.03rem;line-height:3.6rem;color:#FFFFFF;}}/*!sc*/ .csFzCj{margin:0 0 0.8rem;color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2rem;-webkit-letter-spacing:-0.01rem;-moz-letter-spacing:-0.01rem;-ms-letter-spacing:-0.01rem;letter-spacing:-0.01rem;line-height:2.6rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.csFzCj{color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2rem;-webkit-letter-spacing:-0.01rem;-moz-letter-spacing:-0.01rem;-ms-letter-spacing:-0.01rem;letter-spacing:-0.01rem;line-height:2.6rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.csFzCj{color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2rem;-webkit-letter-spacing:-0.01rem;-moz-letter-spacing:-0.01rem;-ms-letter-spacing:-0.01rem;letter-spacing:-0.01rem;line-height:2.6rem;color:#FFFFFF;}}/*!sc*/ .klHTjZ{margin:0 0 3.2rem;color:#1E212A;font-family:SpaceGrotesk,sans-serif;font-style:NORMAL;font-weight:600;font-size:4rem;-webkit-letter-spacing:-0.08rem;-moz-letter-spacing:-0.08rem;-ms-letter-spacing:-0.08rem;letter-spacing:-0.08rem;line-height:4.4rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.klHTjZ{margin:0 0 4.8rem;}}/*!sc*/ @media screen and (min-width:990px){.klHTjZ{color:#1E212A;font-family:SpaceGrotesk,sans-serif;font-style:NORMAL;font-weight:600;font-size:4rem;-webkit-letter-spacing:-0.08rem;-moz-letter-spacing:-0.08rem;-ms-letter-spacing:-0.08rem;letter-spacing:-0.08rem;line-height:4.4rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.klHTjZ{color:#1E212A;font-family:SpaceGrotesk,sans-serif;font-style:NORMAL;font-weight:600;font-size:4.8rem;-webkit-letter-spacing:-0.11000000000000001rem;-moz-letter-spacing:-0.11000000000000001rem;-ms-letter-spacing:-0.11000000000000001rem;letter-spacing:-0.11000000000000001rem;line-height:5.6rem;color:#FFFFFF;}}/*!sc*/ .dWaerX{margin:0 0 .8rem;color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2.4rem;-webkit-letter-spacing:-0.02rem;-moz-letter-spacing:-0.02rem;-ms-letter-spacing:-0.02rem;letter-spacing:-0.02rem;line-height:3.2rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.dWaerX{color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2.4rem;-webkit-letter-spacing:-0.02rem;-moz-letter-spacing:-0.02rem;-ms-letter-spacing:-0.02rem;letter-spacing:-0.02rem;line-height:3.2rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.dWaerX{color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2.4rem;-webkit-letter-spacing:-0.02rem;-moz-letter-spacing:-0.02rem;-ms-letter-spacing:-0.02rem;letter-spacing:-0.02rem;line-height:3.2rem;color:#FFFFFF;}}/*!sc*/ .eYAGXw{margin:0 0 1.6rem 0;color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2.4rem;-webkit-letter-spacing:-0.02rem;-moz-letter-spacing:-0.02rem;-ms-letter-spacing:-0.02rem;letter-spacing:-0.02rem;line-height:3.2rem;color:#FFFFFF;padding:0;}/*!sc*/ @media screen and (min-width:990px){.eYAGXw{color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2.4rem;-webkit-letter-spacing:-0.02rem;-moz-letter-spacing:-0.02rem;-ms-letter-spacing:-0.02rem;letter-spacing:-0.02rem;line-height:3.2rem;color:#FFFFFF;}}/*!sc*/ @media screen and (min-width:1200px){.eYAGXw{color:#1E212A;font-family:Inter,sans-serif;font-style:NORMAL;font-weight:500;font-size:2.4rem;-webkit-letter-spacing:-0.02rem;-moz-letter-spacing:-0.02rem;-ms-letter-spacing:-0.02rem;letter-spacing:-0.02rem;line-height:3.2rem;color:#FFFFFF;}}/*!sc*/ data-styled.g9[id="styled__Heading-sc-165cfko-2"]{content:"jjxBdz,egKny,gZYPyt,csFzCj,klHTjZ,dWaerX,eYAGXw,"}/*!sc*/ .cIdkDp{margin:0;padding:0;font-family:Inter,sans-serif !important;color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#BCBAFF;-webkit-text-decoration:none;text-decoration:none;text-underline-offset:0.3rem;cursor:pointer;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}/*!sc*/ @media screen and (min-width:990px){.cIdkDp{color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#BCBAFF;}}/*!sc*/ @media screen and (min-width:1200px){.cIdkDp{color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#BCBAFF;}}/*!sc*/ .cIdkDp:hover{color:#E9E8FF;cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .cIdkDp:active{color:#908BFF;}/*!sc*/ .cIdkDp:focus-visible{outline:0.4rem solid #635DFFCC;border-radius:0.4rem;color:#BCBAFF;}/*!sc*/ .cIdkDp:after{content:'→';padding-left:0.8rem;display:inline-block;}/*!sc*/ .HGwAF{margin:0;padding:0;font-family:Inter,sans-serif !important;color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.8rem;-webkit-letter-spacing:-0.005rem;-moz-letter-spacing:-0.005rem;-ms-letter-spacing:-0.005rem;letter-spacing:-0.005rem;line-height:2.8rem;color:#BCBAFF;-webkit-text-decoration:none;text-decoration:none;text-underline-offset:0.3rem;cursor:pointer;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}/*!sc*/ @media screen and (min-width:990px){.HGwAF{color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.8rem;-webkit-letter-spacing:-0.005rem;-moz-letter-spacing:-0.005rem;-ms-letter-spacing:-0.005rem;letter-spacing:-0.005rem;line-height:2.8rem;color:#BCBAFF;}}/*!sc*/ @media screen and (min-width:1200px){.HGwAF{color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:2rem;-webkit-letter-spacing:-0.01rem;-moz-letter-spacing:-0.01rem;-ms-letter-spacing:-0.01rem;letter-spacing:-0.01rem;line-height:3.2rem;color:#BCBAFF;}}/*!sc*/ .HGwAF:hover{color:#E9E8FF;cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .HGwAF:active{color:#908BFF;}/*!sc*/ .HGwAF:focus-visible{outline:0.4rem solid #635DFFCC;border-radius:0.4rem;color:#BCBAFF;}/*!sc*/ .bHviJx{margin:0;padding:0;font-family:Inter,sans-serif !important;color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#BCBAFF;-webkit-text-decoration:none;text-decoration:none;text-underline-offset:0.3rem;cursor:pointer;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}/*!sc*/ @media screen and (min-width:990px){.bHviJx{color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.6rem;-webkit-letter-spacing:-0.001rem;-moz-letter-spacing:-0.001rem;-ms-letter-spacing:-0.001rem;letter-spacing:-0.001rem;line-height:2.4rem;color:#BCBAFF;}}/*!sc*/ @media screen and (min-width:1200px){.bHviJx{color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.6rem;-webkit-letter-spacing:-0.001rem;-moz-letter-spacing:-0.001rem;-ms-letter-spacing:-0.001rem;letter-spacing:-0.001rem;line-height:2.4rem;color:#BCBAFF;}}/*!sc*/ .bHviJx:hover{color:#E9E8FF;cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .bHviJx:active{color:#908BFF;}/*!sc*/ .bHviJx:focus-visible{outline:0.4rem solid #635DFFCC;border-radius:0.4rem;color:#BCBAFF;}/*!sc*/ .bHviJx:after{content:'→';padding-left:0.8rem;display:inline-block;}/*!sc*/ .iMCbpH{margin:0;padding:0;font-family:Inter,sans-serif !important;color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#BCBAFF;-webkit-text-decoration:none;text-decoration:none;text-underline-offset:0.3rem;cursor:pointer;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}/*!sc*/ @media screen and (min-width:990px){.iMCbpH{color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.6rem;-webkit-letter-spacing:-0.001rem;-moz-letter-spacing:-0.001rem;-ms-letter-spacing:-0.001rem;letter-spacing:-0.001rem;line-height:2.4rem;color:#BCBAFF;}}/*!sc*/ @media screen and (min-width:1200px){.iMCbpH{color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.6rem;-webkit-letter-spacing:-0.001rem;-moz-letter-spacing:-0.001rem;-ms-letter-spacing:-0.001rem;letter-spacing:-0.001rem;line-height:2.4rem;color:#BCBAFF;}}/*!sc*/ .iMCbpH:hover{color:#E9E8FF;cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .iMCbpH:active{color:#908BFF;}/*!sc*/ .iMCbpH:focus-visible{outline:0.4rem solid #635DFFCC;border-radius:0.4rem;color:#BCBAFF;}/*!sc*/ .cgEhxM{margin:0;padding:0;font-family:Inter,sans-serif !important;color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#635DFF;-webkit-text-decoration:none;text-decoration:none;text-underline-offset:0.3rem;cursor:pointer;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}/*!sc*/ @media screen and (min-width:990px){.cgEhxM{color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#635DFF;}}/*!sc*/ @media screen and (min-width:1200px){.cgEhxM{color:#635DFF;font-family:Inter;font-style:NORMAL;font-weight:500;font-size:1.4rem;-webkit-letter-spacing:0rem;-moz-letter-spacing:0rem;-ms-letter-spacing:0rem;letter-spacing:0rem;line-height:2.2rem;color:#635DFF;}}/*!sc*/ .cgEhxM:hover{color:#564ED1;cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .cgEhxM:active{color:#493FA3;}/*!sc*/ .cgEhxM:focus-visible{outline:0.4rem solid #635DFFCC;border-radius:0.4rem;color:#635DFF;}/*!sc*/ data-styled.g11[id="styled__Link-sc-bubr9x-0"]{content:"cIdkDp,HGwAF,bHviJx,iMCbpH,cgEhxM,"}/*!sc*/ .gxBRYe{border-radius:0.4rem;background:#E9ECF3;display:inline-block;padding:0 0.6rem;font-size:1.1rem;line-height:1.8rem;-webkit-letter-spacing:0.08rem;-moz-letter-spacing:0.08rem;-ms-letter-spacing:0.08rem;letter-spacing:0.08rem;text-transform:uppercase;font-weight:600;color:#1E212A;border:0.1rem solid transparent;}/*!sc*/ data-styled.g42[id="styled__Label-sc-1b71zc1-0"]{content:"gxBRYe,"}/*!sc*/ .cDgzsN{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:1.03rem 1.6rem;border-bottom:0.1rem solid #42464d;z-index:1001;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ @media screen and (min-width:990px){.cDgzsN{display:none;}}/*!sc*/ data-styled.g140[id="sc-be6810b1-0"]{content:"cDgzsN,"}/*!sc*/ .irQZPJ{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;height:2.4rem;margin:0;padding:0;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}/*!sc*/ data-styled.g141[id="sc-be6810b1-1"]{content:"irQZPJ,"}/*!sc*/ .iDNvjh{width:2rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:0.2rem;background:#bdc4cf;border-radius:0.2rem;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;margin-top:1.2rem;}/*!sc*/ .iDNvjh::before,.iDNvjh::after{content:'';position:absolute;width:2rem;height:0.2rem;background:#bdc4cf;border-radius:0.2rem;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}/*!sc*/ .iDNvjh::before{-webkit-transform:translateY(-0.7rem);-ms-transform:translateY(-0.7rem);transform:translateY(-0.7rem);}/*!sc*/ .iDNvjh::after{-webkit-transform:translateY(0.7rem);-ms-transform:translateY(0.7rem);transform:translateY(0.7rem);}/*!sc*/ data-styled.g142[id="sc-be6810b1-2"]{content:"iDNvjh,"}/*!sc*/ .ciIyrr{display:none;z-index:100;top:6.5rem;left:0;right:0;bottom:0;background:#1e212a;overflow:auto;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none;height:calc(100% - 20.9rem);}/*!sc*/ .ciIyrr::-webkit-scrollbar{display:none;}/*!sc*/ @media screen and (min-width:990px){.ciIyrr{display:none;}}/*!sc*/ data-styled.g143[id="sc-be6810b1-3"]{content:"ciIyrr,"}/*!sc*/ .bBQMeO{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:2.4rem 2.4rem 2.4rem 1.6rem;border-bottom:0.1rem solid #42464d;cursor:pointer;}/*!sc*/ .bBQMeO span{-webkit-transition:all 0.25s ease;transition:all 0.25s ease;}/*!sc*/ .bBQMeO svg{-webkit-transform:scale(1.8);-ms-transform:scale(1.8);transform:scale(1.8);-webkit-transition:all 0.25s ease;transition:all 0.25s ease;}/*!sc*/ data-styled.g144[id="sc-be6810b1-4"]{content:"bBQMeO,"}/*!sc*/ .dTaUBA{display:block;}/*!sc*/ .dTaUBA summary::-webkit-details-marker{display:none;}/*!sc*/ .dTaUBA[open] summary span{color:#bcbaff;}/*!sc*/ .dTaUBA[open] summary svg{-webkit-transform:rotate(-180deg) scale(1.8);-ms-transform:rotate(-180deg) scale(1.8);transform:rotate(-180deg) scale(1.8);}/*!sc*/ .dTaUBA[open] summary svg path{stroke:#bcbaff;}/*!sc*/ data-styled.g145[id="sc-be6810b1-5"]{content:"dTaUBA,"}/*!sc*/ .izwFws{padding:2.4rem 1.6rem 3.6rem;}/*!sc*/ .izwFws:first-child{border-top:0.1rem solid #42464d;}/*!sc*/ .izwFws:last-child{border-bottom:0.1rem solid #42464d;}/*!sc*/ .izwFws + div{padding-top:0.4rem;}/*!sc*/ data-styled.g146[id="sc-be6810b1-6"]{content:"izwFws,"}/*!sc*/ .leiOrm{font-family:'SpaceGrotesk',sans-serif;font-weight:500;font-size:1.4rem;line-height:2rem;-webkit-letter-spacing:0.15rem;-moz-letter-spacing:0.15rem;-ms-letter-spacing:0.15rem;letter-spacing:0.15rem;text-transform:uppercase;margin:0 0 2rem;color:#8c929c;}/*!sc*/ data-styled.g147[id="sc-be6810b1-7"]{content:"leiOrm,"}/*!sc*/ .iwzxjv{list-style-type:none;margin:0;padding:0;}/*!sc*/ data-styled.g148[id="sc-be6810b1-8"]{content:"iwzxjv,"}/*!sc*/ .jiJIvS a{color:white;font-size:2rem;-webkit-letter-spacing:-0.01rem;-moz-letter-spacing:-0.01rem;-ms-letter-spacing:-0.01rem;letter-spacing:-0.01rem;font-weight:500;}/*!sc*/ .jiJIvS a:hover{color:#bcbaff;}/*!sc*/ .jiJIvS + li{margin-top:2rem;}/*!sc*/ data-styled.g149[id="sc-be6810b1-9"]{content:"jiJIvS,"}/*!sc*/ .MTdXR{display:grid;grid-template-areas: '. .' 'contact contact';grid-gap:1.6rem;position:fixed;left:0;right:0;bottom:0;padding:1.6rem;border-top:0.1rem solid #42464d;background:#1e212a;}/*!sc*/ .MTdXR a:nth-child(3){grid-area:contact;}/*!sc*/ data-styled.g150[id="sc-be6810b1-10"]{content:"MTdXR,"}/*!sc*/ .iABRDb{padding:3.2rem 6.4rem 6.4rem;margin:0 auto;max-width:54.4rem;background:black;border-radius:2.4rem;box-shadow:0 0 0.8rem rgba(0,0,0,0.075), 0 1.2rem 1.2rem rgba(0,0,0,0.1);}/*!sc*/ data-styled.g151[id="sc-e3b7f1ce-0"]{content:"iABRDb,"}/*!sc*/ .jGXjwK{font-family:'SpaceGrotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.2rem;line-height:1.8rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-letter-spacing:0.12rem;-moz-letter-spacing:0.12rem;-ms-letter-spacing:0.12rem;letter-spacing:0.12rem;text-transform:uppercase;color:#F1F3F7;padding-bottom:1.6rem;margin:0 0 3.2rem;border-bottom:0.1rem solid #3A3E44;}/*!sc*/ data-styled.g152[id="sc-e3b7f1ce-1"]{content:"jGXjwK,"}/*!sc*/ .jxyAyz{display:grid;grid-template-columns:1fr 1fr;grid-gap:2.4rem 3.2rem;}/*!sc*/ data-styled.g153[id="sc-e3b7f1ce-2"]{content:"jxyAyz,"}/*!sc*/ .kUTCSR{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .kUTCSR p{color:white;margin:0;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}/*!sc*/ .kUTCSR p:nth-child(2){color:#BDC4CF;}/*!sc*/ .kUTCSR p:first-of-type:after{-webkit-transition:all 0.2s ease;transition:all 0.2s ease;opacity:0;content:'→';padding-left:0.5rem;position:absolute;right:-2rem;}/*!sc*/ .kUTCSR:hover p:first-child{color:white;position:relative;display:inline-block;}/*!sc*/ .kUTCSR:hover p:first-child:after{opacity:1;}/*!sc*/ .kUTCSR:hover p:nth-child(2){color:#FFFFFF;}/*!sc*/ data-styled.g154[id="sc-e3b7f1ce-3"]{content:"kUTCSR,"}/*!sc*/ .dgcixe{padding:0.4rem;background:#000;border-radius:2.4rem;max-width:93.2rem;margin:0 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;box-shadow:0rem 0rem 0.8rem rgba(0,0,0,0.075), 0rem 1.2rem 1.2rem rgba(0,0,0,0.1);}/*!sc*/ data-styled.g155[id="sc-3ea2115e-0"]{content:"dgcixe,"}/*!sc*/ .eONNrN{font-family:'SpaceGrotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.2rem;line-height:1.8rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-letter-spacing:0.12rem;-moz-letter-spacing:0.12rem;-ms-letter-spacing:0.12rem;letter-spacing:0.12rem;text-transform:uppercase;color:#F1F3F7;padding-bottom:1.6rem;margin:0 0 3.2rem;border-bottom:0.1rem solid #3A3E44;}/*!sc*/ data-styled.g156[id="sc-3ea2115e-1"]{content:"eONNrN,"}/*!sc*/ .gHgPiF{padding:3.2rem 6rem 3.2rem 6.4rem;min-width:54rem;}/*!sc*/ data-styled.g157[id="sc-3ea2115e-2"]{content:"gHgPiF,"}/*!sc*/ .gfdJUx{display:grid;grid-template-columns:1fr 1fr;grid-gap:2.4rem 3.2rem;}/*!sc*/ data-styled.g158[id="sc-3ea2115e-3"]{content:"gfdJUx,"}/*!sc*/ .gYXvxG{padding:3.2rem 6.4rem;background:#1e212a;border-radius:2.2rem;width:100%;}/*!sc*/ data-styled.g159[id="sc-3ea2115e-4"]{content:"gYXvxG,"}/*!sc*/ .dUMJXC{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .dUMJXC p{margin:0;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}/*!sc*/ .dUMJXC p:nth-child(2){color:#BDC4CF;}/*!sc*/ .dUMJXC p:first-child{color:#F1F3F7;position:relative;display:inline-block;}/*!sc*/ .dUMJXC p:first-child:after{-webkit-transition:all 0.2s ease;transition:all 0.2s ease;opacity:0;content:'→';padding-left:0.5rem;position:absolute;right:-2rem;}/*!sc*/ .dUMJXC:hover p:first-child{color:#F1F3F7;}/*!sc*/ .dUMJXC:hover p:first-child:after{opacity:1;}/*!sc*/ .dUMJXC:hover p:nth-child(2){color:#FFFFFF;}/*!sc*/ data-styled.g160[id="sc-3ea2115e-5"]{content:"dUMJXC,"}/*!sc*/ .jxyqmx{display:grid;grid-template-areas: 'icon .' 'icon .';-webkit-column-gap:1.6rem;column-gap:1.6rem;}/*!sc*/ .jxyqmx p:first-child{justify-self:left;}/*!sc*/ .jxyqmx + a{margin-top:3.2rem;}/*!sc*/ .jxyqmx svg{grid-area:icon;}/*!sc*/ data-styled.g161[id="sc-3ea2115e-6"]{content:"jxyqmx,"}/*!sc*/ .cGozyj{padding:2.8rem 6.4rem 6rem;background:#1E212A;border-radius:2.4rem;max-width:66.4rem;margin:0 auto;border:0.4rem solid #000000;box-shadow:0 0 0.8rem rgba(0,0,0,0.075), 0 1.2rem 1.2rem rgba(0,0,0,0.1);}/*!sc*/ data-styled.g162[id="sc-1c1cb22e-0"]{content:"cGozyj,"}/*!sc*/ .hxHzXv{font-family:'SpaceGrotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.2rem;line-height:1.8rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-letter-spacing:0.12rem;-moz-letter-spacing:0.12rem;-ms-letter-spacing:0.12rem;letter-spacing:0.12rem;text-transform:uppercase;color:#F1F3F7;padding-bottom:1.6rem;margin:0 0 3.2rem;border-bottom:0.1rem solid #3A3E44;}/*!sc*/ data-styled.g163[id="sc-1c1cb22e-1"]{content:"hxHzXv,"}/*!sc*/ .joQPTn{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:2.4rem 3.2rem;}/*!sc*/ data-styled.g164[id="sc-1c1cb22e-2"]{content:"joQPTn,"}/*!sc*/ .ZtyfS{display:grid;grid-template-areas: 'icon title' 'icon description';-webkit-text-decoration:none;text-decoration:none;-webkit-column-gap:1.6rem;column-gap:1.6rem;grid-template-rows:2.2rem auto;}/*!sc*/ .ZtyfS svg{grid-area:icon;}/*!sc*/ .ZtyfS p:first-of-type:after{-webkit-transition:all 0.2s ease;transition:all 0.2s ease;opacity:0;content:'→';padding-left:0.5rem;display:inline-block;}/*!sc*/ .ZtyfS:hover p:first-of-type{color:#F1F3F7;}/*!sc*/ .ZtyfS:hover p:first-of-type:after{opacity:1;}/*!sc*/ .ZtyfS:hover p:last-of-type{color:#FFFFFF;}/*!sc*/ data-styled.g165[id="sc-1c1cb22e-3"]{content:"ZtyfS,"}/*!sc*/ .TUmhq{padding:0.4rem;background:#000;border-radius:2.4rem;max-width:93.2rem;margin:0 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;box-shadow:0 0 0.8rem rgba(0,0,0,0.075), 0 1.2rem 1.2rem rgba(0,0,0,0.1);}/*!sc*/ data-styled.g166[id="sc-88e0a412-0"]{content:"TUmhq,"}/*!sc*/ .fKFJuD{font-family:'SpaceGrotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.2rem;line-height:1.8rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-letter-spacing:0.12rem;-moz-letter-spacing:0.12rem;-ms-letter-spacing:0.12rem;letter-spacing:0.12rem;text-transform:uppercase;color:#f1f3f7;padding-bottom:1.6rem;margin:0 0 3.2rem;border-bottom:0.1rem solid #3a3e44;}/*!sc*/ data-styled.g167[id="sc-88e0a412-1"]{content:"fKFJuD,"}/*!sc*/ .cWPhTL{padding:3.2rem 6rem 3.2rem 6.4rem;min-width:54rem;}/*!sc*/ data-styled.g168[id="sc-88e0a412-2"]{content:"cWPhTL,"}/*!sc*/ .kbdSIb{display:grid;grid-template-columns:1fr 1fr;grid-gap:2.4rem 3.2rem;}/*!sc*/ data-styled.g169[id="sc-88e0a412-3"]{content:"kbdSIb,"}/*!sc*/ .jeoMSA{padding:3.2rem 6.4rem;background:#1e212a;border-radius:2.2rem;width:100%;}/*!sc*/ data-styled.g170[id="sc-88e0a412-4"]{content:"jeoMSA,"}/*!sc*/ .hzA-dVG{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .hzA-dVG p{margin:0;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}/*!sc*/ .hzA-dVG p:first-child{color:#F1F3F7;position:relative;display:inline-block;}/*!sc*/ .hzA-dVG p:first-child:after{-webkit-transition:all 0.2s ease;transition:all 0.2s ease;opacity:0;content:'→';padding-left:0.5rem;position:absolute;right:-2rem;}/*!sc*/ .hzA-dVG p:nth-child(2){color:#BDC4CF;}/*!sc*/ .hzA-dVG:hover p:first-child{color:#F1F3F7;}/*!sc*/ .hzA-dVG:hover p:first-child:after{opacity:1;}/*!sc*/ .hzA-dVG:hover p:nth-child(2){color:#FFFFFF;}/*!sc*/ data-styled.g171[id="sc-88e0a412-5"]{content:"hzA-dVG,"}/*!sc*/ .kdioiD p:nth-child(2){color:#F1F3F7;position:relative;display:inline-block;}/*!sc*/ .kdioiD p:nth-child(2):after{-webkit-transition:all 0.2s ease;transition:all 0.2s ease;opacity:0;content:'→';padding-left:0.5rem;position:absolute;right:-2rem;}/*!sc*/ .kdioiD p:nth-child(3){color:#BDC4CF;}/*!sc*/ .kdioiD:hover p:nth-child(2){color:#F1F3F7;}/*!sc*/ .kdioiD:hover p:nth-child(2):after{opacity:1;}/*!sc*/ .kdioiD:hover p:nth-child(3){color:#FFFFFF;}/*!sc*/ data-styled.g172[id="sc-88e0a412-6"]{content:"kdioiD,"}/*!sc*/ .SmnLB{margin-bottom:2.2rem;}/*!sc*/ .SmnLB img{object-fit:cover;border-radius:1.6rem;}/*!sc*/ data-styled.g173[id="sc-88e0a412-7"]{content:"SmnLB,"}/*!sc*/ .ikYBUn{position:absolute;visibility:hidden;opacity:0;top:11.3rem;right:0;left:0;max-width:93.2rem;margin:0 auto;padding-top:1.6rem;-webkit-transform:translateX(-1.6rem);-ms-transform:translateX(-1.6rem);transform:translateX(-1.6rem);-webkit-transition:visibility 0s,opacity 0.2s linear,-webkit-transform 0.2s linear;-webkit-transition:visibility 0s,opacity 0.2s linear,transform 0.2s linear;transition:visibility 0s,opacity 0.2s linear,transform 0.2s linear;}/*!sc*/ data-styled.g174[id="sc-905af812-0"]{content:"ikYBUn,"}/*!sc*/ .gFhGko{cursor:default;position:relative;display:block;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}/*!sc*/ .gFhGko:after{content:'';-webkit-transition:background-color 0.2s ease,-webkit-transform 0.2s ease;-webkit-transition:background-color 0.2s ease,transform 0.2s ease;transition:background-color 0.2s ease,transform 0.2s ease;width:100%;border-radius:0.2rem 0.2rem 0 0;height:0.3rem;background-color:transparent;display:block;bottom:-2.1rem;position:absolute;left:0;-webkit-transform:scale(0,1);-ms-transform:scale(0,1);transform:scale(0,1);}/*!sc*/ data-styled.g175[id="sc-905af812-1"]{content:"gFhGko,"}/*!sc*/ .cgiEAc{padding:2.1rem 0;}/*!sc*/ .cgiEAc p{color:white;font-weight:400;}/*!sc*/ .cgiEAc p svg{margin-left:0.4rem;}/*!sc*/ .cgiEAc:hover .sc-905af812-1:after,.cgiEAc:focus-visible .sc-905af812-1:after,.cgiEAc:focus-within .sc-905af812-1:after{background-color:#908bff;-webkit-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);}/*!sc*/ .cgiEAc:hover .sc-905af812-1 p,.cgiEAc:focus-visible .sc-905af812-1 p,.cgiEAc:focus-within .sc-905af812-1 p{color:#908bff;}/*!sc*/ .cgiEAc:hover .sc-905af812-1 svg path,.cgiEAc:focus-visible .sc-905af812-1 svg path,.cgiEAc:focus-within .sc-905af812-1 svg path{stroke:#908bff;}/*!sc*/ .cgiEAc:hover .sc-905af812-0,.cgiEAc:focus-visible .sc-905af812-0,.cgiEAc:focus-within .sc-905af812-0{visibility:visible;opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);}/*!sc*/ data-styled.g176[id="sc-905af812-2"]{content:"cgiEAc,"}/*!sc*/ .jJDwem{display:none;min-height:6.4rem;}/*!sc*/ .jJDwem li:focus-visible,.jJDwem a:focus-visible,.jJDwem li:focus-within,.jJDwem a:focus-within,.jJDwem li:focus,.jJDwem a:focus{outline-color:#908BFF;}/*!sc*/ @media screen and (min-width:990px){.jJDwem{max-width:121.6rem;margin:0 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 2.4rem;}}/*!sc*/ @media screen and (min-width:1200px){.jJDwem{padding:0;}}/*!sc*/ data-styled.g177[id="sc-905af812-3"]{content:"jJDwem,"}/*!sc*/ .ZlTga{grid-column:1 / 3;}/*!sc*/ data-styled.g178[id="sc-905af812-4"]{content:"ZlTga,"}/*!sc*/ .bFtWCk{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;grid-column:6 / 13;padding:0;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:-0.5rem 0;list-style-type:none;-webkit-column-gap:3.2rem;column-gap:3.2rem;justify-self:flex-end;}/*!sc*/ @media screen and (min-width:1200px){.bFtWCk{-webkit-column-gap:4rem;column-gap:4rem;padding:0.5rem 0;}}/*!sc*/ data-styled.g179[id="sc-905af812-5"]{content:"bFtWCk,"}/*!sc*/ .hgFYIN{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-column-gap:1.6rem;column-gap:1.6rem;margin-left:0.8rem;}/*!sc*/ @media screen and (min-width:1200px){.hgFYIN{margin:0;}}/*!sc*/ data-styled.g180[id="sc-905af812-6"]{content:"hgFYIN,"}/*!sc*/ .cIXLMG{background:#3A3E44;position:fixed;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:100%;z-index:1000;overflow:auto;max-width:144rem;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;border-bottom:0.1rem solid rgba(255,255,255,0.2);}/*!sc*/ @media screen and (min-width:990px){.cIXLMG{overflow:visible;}}/*!sc*/ data-styled.g181[id="sc-6baadd7-0"]{content:"cIXLMG,"}/*!sc*/ .krShWi{height:0.1rem;position:absolute;visibility:hidden;top:0;}/*!sc*/ data-styled.g182[id="sc-6baadd7-1"]{content:"krShWi,"}/*!sc*/ .dRVfWQ{background:#000000;width:100%;padding:0.8rem 1.6rem;border-bottom:0.1rem solid rgba(255,255,255,0.1);visibility:visible;opacity:1;height:6rem;overflow:hidden;}/*!sc*/ @media screen and (min-width:990px){.dRVfWQ{height:4.8rem;padding:1.2rem 2.4rem;}}/*!sc*/ data-styled.g183[id="sc-6baadd7-2"]{content:"dRVfWQ,"}/*!sc*/ .jMMhbP{max-width:121.6rem;margin:0 auto;display:grid;grid-template-columns:1fr 3rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;}/*!sc*/ .jMMhbP div p{display:inline;margin-right:2rem;}/*!sc*/ data-styled.g184[id="sc-6baadd7-3"]{content:"jMMhbP,"}/*!sc*/ .dYWVEL{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);background:none;color:#FFFFFF;border:none;font-size:2rem;justify-self:flex-end;font-weight:500;margin:0;padding:0;cursor:pointer;}/*!sc*/ data-styled.g185[id="sc-6baadd7-4"]{content:"dYWVEL,"}/*!sc*/ .fZyAee{visibility:visible;opacity:1;height:4.8rem;}/*!sc*/ data-styled.g186[id="sc-6baadd7-5"]{content:"fZyAee,"}/*!sc*/ .gweikZ{max-width:144rem;border-top:0.1rem solid #3A3E44;margin:0 auto;}/*!sc*/ data-styled.g187[id="sc-455c028d-0"]{content:"gweikZ,"}/*!sc*/ .jFxPLf{background:#1E212A;padding:4.8rem 1.6rem 0;}/*!sc*/ @media screen and (min-width:990px){.jFxPLf{display:grid;grid-template-columns:repeat(12,1fr);gap:2.4rem;padding:8rem 2.4rem 6.8rem;}}/*!sc*/ @media screen and (min-width:1200px){.jFxPLf{max-width:126.4rem;margin:0 auto;}}/*!sc*/ data-styled.g188[id="sc-455c028d-1"]{content:"jFxPLf,"}/*!sc*/ .eJUJkj{display:none;}/*!sc*/ @media screen and (min-width:990px){.eJUJkj{display:block;grid-column:1 / 4;}.eJUJkj svg{width:15.6rem;}}/*!sc*/ @media screen and (min-width:1200px){.eJUJkj svg{width:21.9rem;}}/*!sc*/ data-styled.g189[id="sc-455c028d-2"]{content:"eJUJkj,"}/*!sc*/ .lncPRS{display:grid;grid-template-columns:1fr 1fr;gap:4.8rem 4rem;margin-bottom:5.6rem;}/*!sc*/ @media screen and (min-width:990px){.lncPRS{grid-template-columns:repeat(3,1fr);gap:8rem 4rem;grid-column:4 / 13;margin-bottom:0;}}/*!sc*/ data-styled.g190[id="sc-455c028d-3"]{content:"lncPRS,"}/*!sc*/ .kBqYnO{font-family:'SpaceGrotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.2rem;line-height:1.8rem;-webkit-letter-spacing:0.12rem;-moz-letter-spacing:0.12rem;-ms-letter-spacing:0.12rem;letter-spacing:0.12rem;text-transform:uppercase;color:#8B929B;margin:0 0 1.6rem;}/*!sc*/ data-styled.g191[id="sc-455c028d-4"]{content:"kBqYnO,"}/*!sc*/ .jPaIrl{-webkit-text-decoration:none;text-decoration:none;color:#FFFFFF;}/*!sc*/ .jPaIrl span{color:#FFFFFF;position:relative;display:inline-block;}/*!sc*/ .jPaIrl span:after{content:'→';padding-left:0.5rem;position:absolute;right:-2rem;}/*!sc*/ .jPaIrl:hover span{color:#BCBAFF;}/*!sc*/ data-styled.g192[id="sc-455c028d-5"]{content:"jPaIrl,"}/*!sc*/ .dyruqS{padding:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;row-gap:1.2rem;list-style-type:none;}/*!sc*/ data-styled.g193[id="sc-455c028d-6"]{content:"dyruqS,"}/*!sc*/ .jmpnnP{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ .jmpnnP:hover a:hover{color:#BCBAFF;}/*!sc*/ data-styled.g194[id="sc-455c028d-7"]{content:"jmpnnP,"}/*!sc*/ .circrH{display:inline-block;font-family:'Inter',sans-serif;font-weight:500;font-size:1.1rem;line-height:1.8rem;color:#FFFFFF;padding:0.1rem 0.6rem;background:linear-gradient(153.07deg,#3ec6eb -2.47%,#1bc99f 102.78%);border-radius:0.4rem;margin-left:0.8rem;}/*!sc*/ data-styled.g195[id="sc-455c028d-8"]{content:"circrH,"}/*!sc*/ .fpzcvM{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-column-gap:1.6rem;column-gap:1.6rem;}/*!sc*/ @media screen and (min-width:990px){.fpzcvM{margin-top:-5rem;grid-column:10 / 13;}}/*!sc*/ data-styled.g196[id="sc-455c028d-9"]{content:"fpzcvM,"}/*!sc*/ .iBqHXd{width:100%;margin:0 auto;padding:2.4rem 0;}/*!sc*/ @media screen and (min-width:990px){.iBqHXd{padding:2.4rem;border-top:0.05rem solid #3A3E44;}}/*!sc*/ @media screen and (min-width:1200px){.iBqHXd{max-width:144rem;}}/*!sc*/ data-styled.g197[id="sc-455c028d-10"]{content:"iBqHXd,"}/*!sc*/ .ioGeMK{max-width:121.6rem;margin:0 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;row-gap:1.6rem;}/*!sc*/ .ioGeMK p{padding:0 1.6rem;}/*!sc*/ @media screen and (min-width:990px){.ioGeMK{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}}/*!sc*/ data-styled.g198[id="sc-455c028d-11"]{content:"ioGeMK,"}/*!sc*/ .bMMtVm{margin:0;padding:0 1.6rem 2.4rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;list-style-type:none;border-bottom:0.05rem solid #3A3E44;}/*!sc*/ .bMMtVm li + li:before{content:'•';color:#8B929B;display:inline-block;padding:0 0.4rem;}/*!sc*/ @media screen and (min-width:990px){.bMMtVm li + li:before{padding:0 0.8rem;}}/*!sc*/ @media screen and (min-width:990px){.bMMtVm{border-bottom:none;padding:0;}}/*!sc*/ data-styled.g199[id="sc-455c028d-12"]{content:"bMMtVm,"}/*!sc*/ .fOTDYz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;}/*!sc*/ data-styled.g200[id="sc-fcaee53a-0"]{content:"fOTDYz,"}/*!sc*/ .flMxQE{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow-x:scroll;-webkit-scroll-snap-type:x mandatory;-moz-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}/*!sc*/ .flMxQE::-webkit-scrollbar{display:none;}/*!sc*/ @media screen and (min-width:1200px){.flMxQE{overflow-x:hidden;}}/*!sc*/ data-styled.g202[id="sc-fcaee53a-2"]{content:"flMxQE,"}/*!sc*/ .fxqFAI{position:relative;text-align:left;justify-self:flex-end;margin-top:2.4rem;}/*!sc*/ @media screen and (min-width:990px){.fxqFAI{max-width:80rem;}}/*!sc*/ @media screen and (min-width:1200px){.fxqFAI{max-width:121.6rem;padding:0;}}/*!sc*/ data-styled.g203[id="sc-fcaee53a-3"]{content:"fxqFAI,"}/*!sc*/ .hPEmZI{cursor:pointer;background:none;border:none;width:5rem;height:4rem;padding:0;}/*!sc*/ .hPEmZI svg line,.hPEmZI svg path{stroke:#FFFFFF;}/*!sc*/ .hPEmZI:hover svg line,.hPEmZI:hover svg path{stroke:#FFFFFF;}/*!sc*/ .hPEmZI svg{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);margin-bottom:0.05rem;}/*!sc*/ .hPEmZI + button{margin-left:1.6rem;}/*!sc*/ .cedQTI{cursor:pointer;background:none;border:none;width:5rem;height:4rem;padding:0;}/*!sc*/ .cedQTI svg line,.cedQTI svg path{stroke:#FFFFFF;}/*!sc*/ .cedQTI:hover svg line,.cedQTI:hover svg path{stroke:#FFFFFF;}/*!sc*/ .cedQTI + button{margin-left:1.6rem;}/*!sc*/ data-styled.g204[id="sc-fcaee53a-4"]{content:"hPEmZI,cedQTI,"}/*!sc*/ .ekjMyu{max-width:144rem;border-radius:0 0 4rem 4rem;background:#3A3E44;background-size:auto 100%;background-position:100% calc(100% + 45rem);margin:6.4rem auto;overflow:hidden;position:relative;}/*!sc*/ .ekjMyu:after{position:absolute;content:'';width:100%;height:45.8rem;background:linear-gradient( 138.81deg, #3a3e44 0%, rgba(58,62,68,0) 100% );bottom:0;left:0;}/*!sc*/ @media screen and (min-width:990px){.ekjMyu:after{width:40rem;height:100%;}}/*!sc*/ @media screen and (min-width:1200px){.ekjMyu:after{width:60rem;height:100%;}}/*!sc*/ data-styled.g205[id="sc-121c725a-0"]{content:"ekjMyu,"}/*!sc*/ .fDjzHK{max-width:126.4rem;padding:3.2rem 1.6rem 6.4rem;margin:0 auto;position:relative;z-index:3;}/*!sc*/ .fDjzHK h1{margin-bottom:0.8rem;}/*!sc*/ @media screen and (min-width:990px){.fDjzHK{display:grid;grid-template-columns:repeat(12,1fr);gap:2.4rem;padding:6.4rem 2.4rem;}.fDjzHK h1{margin-bottom:1.6rem;}}/*!sc*/ @media screen and (min-width:1200px){.fDjzHK{gap:3.2rem;}}/*!sc*/ data-styled.g206[id="sc-121c725a-1"]{content:"fDjzHK,"}/*!sc*/ .fxqHnu{grid-column:1 / 4;}/*!sc*/ data-styled.g208[id="sc-121c725a-3"]{content:"fxqHnu,"}/*!sc*/ .dGjDCy{grid-column:5 / 13;margin-top:3.2rem;max-width:100%;}/*!sc*/ @media screen and (min-width:990px){.dGjDCy{margin-top:0;}}/*!sc*/ data-styled.g209[id="sc-121c725a-4"]{content:"dGjDCy,"}/*!sc*/ .QZbze{grid-column:1 / 4;position:relative;width:100%;aspect-ratio:4 / 2;border-radius:1.6rem;overflow:hidden;}/*!sc*/ .QZbze img{object-fit:cover;}/*!sc*/ @media screen and (min-width:990px){.QZbze{height:100%;width:auto;aspect-ratio:9 / 16;border-radius:1.2rem;}}/*!sc*/ @media screen and (min-width:1200px){.QZbze{border-radius:1.6rem;aspect-ratio:3 / 4;}}/*!sc*/ data-styled.g210[id="sc-121c725a-5"]{content:"QZbze,"}/*!sc*/ .jRAbRU{grid-column:5 / 9;padding:1.6rem 0 0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}/*!sc*/ .jRAbRU h3{margin-bottom:0.8rem;}/*!sc*/ .jRAbRU p:first-of-type{white-space:break-spaces;}/*!sc*/ .jRAbRU p:last-child{margin-top:auto;position:relative;}/*!sc*/ .jRAbRU p:last-child:after{position:absolute;}/*!sc*/ @media screen and (min-width:990px){.jRAbRU{padding:1.6rem 0;grid-column:5 / 8;}.jRAbRU h3{margin-bottom:1.2rem;}}/*!sc*/ @media screen and (min-width:1200px){.jRAbRU{grid-column:5 / 8;}}/*!sc*/ data-styled.g211[id="sc-121c725a-6"]{content:"jRAbRU,"}/*!sc*/ .kbKgiA{background:#BDC4CF;padding:1.6rem;border-radius:2.4rem;-webkit-text-decoration:none;text-decoration:none;min-width:100%;-webkit-scroll-snap-align:center;-moz-scroll-snap-align:center;-ms-scroll-snap-align:center;scroll-snap-align:center;}/*!sc*/ .kbKgiA + a{margin-left:2.4rem;}/*!sc*/ .kbKgiA:hover .sc-121c725a-6 p:last-child{-webkit-text-decoration:underline;text-decoration:underline;text-underline-offset:0.4rem;}/*!sc*/ .kbKgiA:hover .sc-121c725a-6 h3,.kbKgiA:hover .sc-121c725a-6 p:last-child{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;color:#000000;}/*!sc*/ @media screen and (min-width:990px){.kbKgiA{display:grid;grid-template-columns:repeat(8,1fr);gap:2.4rem;}}/*!sc*/ @media screen and (min-width:1200px){.kbKgiA{gap:3.2rem;}}/*!sc*/ data-styled.g212[id="sc-121c725a-7"]{content:"kbKgiA,"}/*!sc*/ .hKxBPh{position:absolute;bottom:0;left:0;right:0;}/*!sc*/ data-styled.g213[id="sc-121c725a-8"]{content:"hKxBPh,"}/*!sc*/ .gGAiza{max-width:126.4rem;margin:0 auto;padding:0 1.6rem;margin-bottom:6.4rem;}/*!sc*/ @media screen and (min-width:990px){.gGAiza{padding:0 2.4rem;}}/*!sc*/ @media screen and (min-width:1200px){.gGAiza{margin-bottom:8rem;}}/*!sc*/ data-styled.g214[id="sc-f9dfa3ea-0"]{content:"gGAiza,"}/*!sc*/ .eGwuxU{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;grid-gap:1.6rem;margin-bottom:6.4rem;}/*!sc*/ @media screen and (min-width:990px){.eGwuxU{display:grid;grid-template-areas: 'events ambassadors';grid-gap:2.4rem;grid-template-columns:repeat(12,1fr);}}/*!sc*/ @media screen and (min-width:1200px){.eGwuxU{grid-gap:3.2rem;}}/*!sc*/ data-styled.g215[id="sc-f9dfa3ea-1"]{content:"eGwuxU,"}/*!sc*/ .gEeuHo{padding:2.4rem;background:#BDC4CF;grid-area:events;border-radius:1.6rem;}/*!sc*/ @media screen and (min-width:990px){.gEeuHo{padding:3.2rem 2.4rem;border-radius:2.4rem;grid-column:1 / 9;}}/*!sc*/ @media screen and (min-width:1200px){.gEeuHo{padding:3.2rem;}}/*!sc*/ data-styled.g216[id="sc-f9dfa3ea-2"]{content:"gEeuHo,"}/*!sc*/ .bnUqgf{font-family:'Space Grotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.4rem;line-height:2rem;-webkit-letter-spacing:0.15rem;-moz-letter-spacing:0.15rem;-ms-letter-spacing:0.15rem;letter-spacing:0.15rem;text-transform:uppercase;color:#1E212A;border-bottom:0.05rem solid #8B929B;padding-bottom:1.6rem;margin:0;}/*!sc*/ .huFLxD{font-family:'Space Grotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.4rem;line-height:2rem;-webkit-letter-spacing:0.15rem;-moz-letter-spacing:0.15rem;-ms-letter-spacing:0.15rem;letter-spacing:0.15rem;text-transform:uppercase;color:#FFFFFF;border-bottom:0.05rem solid #8B929B;padding-bottom:1.6rem;margin:0;}/*!sc*/ data-styled.g217[id="sc-f9dfa3ea-3"]{content:"bnUqgf,huFLxD,"}/*!sc*/ .gLCuOw{padding:2.4rem 0;border-bottom:0.05rem solid #8B929B;}/*!sc*/ @media screen and (min-width:990px){.gLCuOw{display:grid;grid-template-columns:repeat(8,1fr);-webkit-column-gap:2.4rem;column-gap:2.4rem;}}/*!sc*/ @media screen and (min-width:1200px){.gLCuOw{padding-bottom:4.8rem;-webkit-column-gap:3.2rem;column-gap:3.2rem;}}/*!sc*/ data-styled.g218[id="sc-f9dfa3ea-4"]{content:"gLCuOw,"}/*!sc*/ .iBzEeN{padding-bottom:0.8rem;border-bottom:0.05rem solid #8B929B;margin-bottom:1.6rem;display:grid;-webkit-text-decoration:none;text-decoration:none;grid-column:1 / 4;row-gap:1.2rem;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .iBzEeN p{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}/*!sc*/ .iBzEeN p:first-of-type{position:relative;display:inline-block;}/*!sc*/ .iBzEeN p:first-of-type:after{content:'→';padding-left:0.5rem;position:relative;opacity:0;-webkit-transition:all 0.1s ease;transition:all 0.1s ease;}/*!sc*/ .iBzEeN:hover p:last-of-type{-webkit-text-decoration:none;text-decoration:none;color:#1E212A;}/*!sc*/ .iBzEeN:hover p:first-of-type:after{opacity:1;}/*!sc*/ @media screen and (min-width:990px){.iBzEeN{margin:0;padding:0.5rem;border:none;row-gap:unset;}.iBzEeN img{margin-bottom:2.4rem;}}/*!sc*/ data-styled.g219[id="sc-f9dfa3ea-5"]{content:"iBzEeN,"}/*!sc*/ .koWBcB{width:100%;aspect-ratio:4 / 2;border-radius:0.8rem;position:relative;height:100%;overflow:hidden;margin:0 0 1.6rem;}/*!sc*/ @media screen and (min-width:990px){.koWBcB{height:13.5rem;aspect-ratio:auto;margin-bottom:2.4rem;}}/*!sc*/ @media screen and (min-width:1200px){.koWBcB{height:18rem;border-radius:1.6rem;}}/*!sc*/ data-styled.g220[id="sc-f9dfa3ea-6"]{content:"koWBcB,"}/*!sc*/ .jEpvEg{grid-column:5 / 9;}/*!sc*/ data-styled.g221[id="sc-f9dfa3ea-7"]{content:"jEpvEg,"}/*!sc*/ .gWjBQP{padding-top:1.6rem;}/*!sc*/ .gWjBQP a{color:#1E212A;}/*!sc*/ .gWjBQP a:hover{color:#3A3E44;-webkit-text-decoration:underline;text-decoration:underline;text-underline-offset:0.4rem;}/*!sc*/ data-styled.g223[id="sc-f9dfa3ea-9"]{content:"gWjBQP,"}/*!sc*/ .cKEaNu{padding:2.4rem;background:#3A3E44;border-radius:1.6rem;}/*!sc*/ .cKEaNu a{color:#FFFFFF;padding-top:1.6rem;}/*!sc*/ .cKEaNu a:hover{color:#BDC4CF;}/*!sc*/ .cKEaNu a:nth-child(3):hover,.cKEaNu a:nth-child(4):hover{-webkit-text-decoration:underline;text-decoration:underline;text-underline-offset:0.4rem;}/*!sc*/ .cKEaNu a:nth-child(3){padding:1.6rem 0;border-bottom:0.05rem solid #595E66;}/*!sc*/ @media screen and (min-width:990px){.cKEaNu{border-radius:2.4rem;grid-column:9 / 13;}}/*!sc*/ @media screen and (min-width:1200px){.cKEaNu{padding:3.2rem;}}/*!sc*/ data-styled.g224[id="sc-f9dfa3ea-10"]{content:"cKEaNu,"}/*!sc*/ .ecIzqb{display:grid;grid-template-areas: 'icon .' 'icon .';grid-gap:0.4rem 2.4rem;grid-template-columns:3.2rem auto;padding:1.6rem 0;border-bottom:0.05rem solid #595E66;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .ecIzqb p{color:#BDC4CF;margin:0;}/*!sc*/ .ecIzqb p:nth-child(2){color:#FFFFFF;}/*!sc*/ .ecIzqb p:nth-child(3){text-transform:capitalize;}/*!sc*/ .ecIzqb p{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}/*!sc*/ .ecIzqb p:first-of-type{position:relative;display:inline-block;}/*!sc*/ .ecIzqb p:first-of-type:after{content:'→';padding-left:0.5rem;position:relative;opacity:0;-webkit-transition:all 0.1s ease;transition:all 0.1s ease;}/*!sc*/ .ecIzqb:hover p:last-of-type{-webkit-text-decoration:none;text-decoration:none;color:#1E212A;}/*!sc*/ .ecIzqb:hover p:first-of-type:after{opacity:1;}/*!sc*/ .ecIzqb:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .ecIzqb:hover p:nth-child(3){color:#FFFFFF;}/*!sc*/ @media screen and (min-width:1200px){.ecIzqb{grid-gap:0.4rem 3.2rem;grid-template-columns:4rem auto;}.ecIzqb img{max-width:4rem;}}/*!sc*/ data-styled.g225[id="sc-f9dfa3ea-11"]{content:"ecIzqb,"}/*!sc*/ .hmsrIR{grid-area:icon;height:3.2rem;width:3.2rem;border-radius:0.4rem;overflow:hidden;position:relative;margin:0;}/*!sc*/ .hmsrIR img{aspect-ratio:1 / 1;object-fit:cover;}/*!sc*/ @media screen and (min-width:1200px){.hmsrIR{width:4rem;height:4rem;border-radius:0.8rem;}}/*!sc*/ data-styled.g226[id="sc-f9dfa3ea-12"]{content:"hmsrIR,"}/*!sc*/ .fZTLHY{font-family:'SpaceGrotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.4rem;line-height:2rem;-webkit-letter-spacing:0.12rem;-moz-letter-spacing:0.12rem;-ms-letter-spacing:0.12rem;letter-spacing:0.12rem;text-transform:uppercase;color:#BDC4CF;padding-bottom:1.6rem;border-bottom:0.1rem solid #3A3E44;margin:0 0 3.2rem;}/*!sc*/ data-styled.g231[id="sc-f9dfa3ea-17"]{content:"fZTLHY,"}/*!sc*/ .crhWjz{list-style-type:none;padding:0;margin:0;display:grid;grid-gap:3.2rem;}/*!sc*/ @media screen and (min-width:990px){.crhWjz{grid-template-columns:repeat(3,1fr);-webkit-column-gap:2.4rem;column-gap:2.4rem;}}/*!sc*/ @media screen and (min-width:1200px){.crhWjz{-webkit-column-gap:3.2rem;column-gap:3.2rem;}}/*!sc*/ data-styled.g232[id="sc-f9dfa3ea-18"]{content:"crhWjz,"}/*!sc*/ .gmUqxI p:first-of-type:after{content:'→';position:absolute;margin-left:0.6rem;opacity:0;-webkit-transition:all 0.1s ease;transition:all 0.1s ease;}/*!sc*/ .gmUqxI:hover p:first-of-type:after{opacity:1;}/*!sc*/ data-styled.g233[id="sc-f9dfa3ea-19"]{content:"gmUqxI,"}/*!sc*/ .iNRGUi{-webkit-text-decoration:none;text-decoration:none;display:grid;grid-template-areas: 'icon .' 'icon .';-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;grid-gap:0.4rem 2.4rem;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .iNRGUi span:first-of-type{grid-area:icon;}/*!sc*/ .iNRGUi p{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}/*!sc*/ .iNRGUi p:first-of-type{position:relative;display:inline-block;}/*!sc*/ .iNRGUi p:first-of-type:after{content:'→';padding-left:0.5rem;position:relative;opacity:0;-webkit-transition:all 0.1s ease;transition:all 0.1s ease;}/*!sc*/ .iNRGUi:hover p:last-of-type{-webkit-text-decoration:none;text-decoration:none;color:#1E212A;}/*!sc*/ .iNRGUi:hover p:first-of-type:after{opacity:1;}/*!sc*/ .iNRGUi:hover p:last-of-type{-webkit-text-decoration:none;text-decoration:none;color:#FFFFFF;}/*!sc*/ data-styled.g234[id="sc-f9dfa3ea-20"]{content:"iNRGUi,"}/*!sc*/ .ijKTfq{max-width:126.4rem;padding:0 1.6rem 6.4rem;margin:0 auto 6.4rem;display:grid;row-gap:1.6rem;border-bottom:0.1rem solid #3A3E44;position:relative;z-index:1;}/*!sc*/ @media screen and (min-width:990px){.ijKTfq{grid-template-columns:repeat(12,1fr);grid-gap:3.2rem;padding:0 2.4rem 6.4rem;margin-bottom:8rem;}}/*!sc*/ data-styled.g235[id="sc-b8162a38-0"]{content:"ijKTfq,"}/*!sc*/ .fxngjf{grid-column:span 4;padding:0.6rem;background:#3A3E44;border-radius:1.6rem;}/*!sc*/ @media screen and (min-width:990px){.fxngjf{border-radius:2.4rem;}}/*!sc*/ data-styled.g236[id="sc-b8162a38-1"]{content:"fxngjf,"}/*!sc*/ .btVUGR{background:linear-gradient(0deg,rgba(0,0,0,0.1),rgba(0,0,0,0.1)),linear-gradient(131.94deg,#FF4F40 0%,#FF44DD 100%);border-radius:1rem 1rem 0 0;padding:2.4rem;}/*!sc*/ @media screen and (min-width:990px){.btVUGR{padding:3.2rem;min-height:19.6rem;border-radius:1.8rem 1.8rem 0 0;}}/*!sc*/ @media screen and (min-width:1200px){.btVUGR{min-height:14.6rem;}}/*!sc*/ .TSXYk{background:linear-gradient(0deg,rgba(0,0,0,0.1),rgba(0,0,0,0.1)),linear-gradient(278.49deg,#3EC6EB 0%,#13A688 100%);border-radius:1rem 1rem 0 0;padding:2.4rem;}/*!sc*/ @media screen and (min-width:990px){.TSXYk{padding:3.2rem;min-height:19.6rem;border-radius:1.8rem 1.8rem 0 0;}}/*!sc*/ @media screen and (min-width:1200px){.TSXYk{min-height:14.6rem;}}/*!sc*/ .iGnFee{background:linear-gradient(0deg,rgba(0,0,0,0.1),rgba(0,0,0,0.1)),linear-gradient(311.94deg,#FF44DD 0.12%,#635DFF 100%);border-radius:1rem 1rem 0 0;padding:2.4rem;}/*!sc*/ @media screen and (min-width:990px){.iGnFee{padding:3.2rem;min-height:19.6rem;border-radius:1.8rem 1.8rem 0 0;}}/*!sc*/ @media screen and (min-width:1200px){.iGnFee{min-height:14.6rem;}}/*!sc*/ data-styled.g237[id="sc-b8162a38-2"]{content:"btVUGR,TSXYk,iGnFee,"}/*!sc*/ .kCsPJu{list-style-type:none;padding:0 0 0.2rem 2.4rem;margin:0 -0.6rem 0 0;}/*!sc*/ @media screen and (min-width:990px){.kCsPJu{padding:0 0 0.2rem 3.2rem;}}/*!sc*/ data-styled.g238[id="sc-b8162a38-3"]{content:"kCsPJu,"}/*!sc*/ .ebewTY{border-top:0.05rem solid #595E66;}/*!sc*/ .ebewTY:first-of-type{border-top:none;padding-top:0.8rem;}/*!sc*/ .ebewTY a{color:#FFFFFF;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .ebewTY:hover{-webkit-text-decoration:underline;text-decoration:underline;text-underline-offset:0.4rem;}/*!sc*/ .ebewTY:hover a{color:#CCD2DC;}/*!sc*/ data-styled.g239[id="sc-b8162a38-4"]{content:"ebewTY,"}/*!sc*/ .dFcbxw{background:#3A3E44;margin:0 auto 8rem;overflow:hidden;}/*!sc*/ @media screen and (min-width:1200px){.dFcbxw{max-width:144rem;border-radius:4rem;background:#3A3E44;position:relative;}.dFcbxw:before{content:'';width:52.7rem;height:100%;background:linear-gradient(90deg,#42464D 0%,rgba(66,70,77,0.5) 54.69%,rgba(66,70,77,0) 100%);position:absolute;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);top:0;bottom:0;right:0;z-index:2;}}/*!sc*/ data-styled.g240[id="sc-26497cf7-0"]{content:"dFcbxw,"}/*!sc*/ .jguXeA{position:relative;z-index:3;padding:4.8rem 0;}/*!sc*/ .jguXeA:before{content:'';width:100%;height:100%;background:#3A3E44;position:absolute;top:0;bottom:0;right:0;left:0;opacity:0.2;}/*!sc*/ @media screen and (min-width:990px){.jguXeA{padding:8rem 2.4rem;}}/*!sc*/ data-styled.g241[id="sc-26497cf7-1"]{content:"jguXeA,"}/*!sc*/ .kFHZcJ{max-width:121.6rem;margin:0 auto;padding:0 1.6rem;z-index:4;position:relative;}/*!sc*/ @media screen and (min-width:990px){.kFHZcJ{padding:0;}}/*!sc*/ data-styled.g242[id="sc-26497cf7-2"]{content:"kFHZcJ,"}/*!sc*/ @media screen and (min-width:990px){.iTyrOZ{display:grid;grid-template-columns:repeat(12,1fr);}}/*!sc*/ data-styled.g243[id="sc-26497cf7-3"]{content:"iTyrOZ,"}/*!sc*/ .cYUAWC{background:#BDC4CF;border-radius:2.4rem;padding:2.4rem;margin-bottom:4.8rem;}/*!sc*/ @media screen and (min-width:990px){.cYUAWC{grid-column:1 / 9;margin-bottom:0;}}/*!sc*/ @media screen and (min-width:1200px){.cYUAWC{padding:3.2rem;position:relative;box-shadow:0 4.48625rem 5,27794rem rgba(0,0,0,0.08),0 1.87425rem 2.205rem rgba(0,0,0,0.0575083),0 1.00206rem 1.1789rem rgba(0,0,0,0.0476886),0 .561748rem 6.6088rem rgba(0,0,0,0.04),0rem .29834rem .350988rem rgba(0,0,0,0.0323114),0rem 0rem .8rem rgba(0,0,0,0.1);}}/*!sc*/ data-styled.g244[id="sc-26497cf7-4"]{content:"cYUAWC,"}/*!sc*/ .huXCRk{padding:2.4rem 0;}/*!sc*/ @media screen and (min-width:990px){.huXCRk{grid-column:9 / 13;padding:2.4rem;}}/*!sc*/ @media screen and (min-width:1200px){.huXCRk{padding:3.2rem;position:relative;}}/*!sc*/ data-styled.g245[id="sc-26497cf7-5"]{content:"huXCRk,"}/*!sc*/ .gVrotW{font-family:'SpaceGrotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.2rem;line-height:1.8rem;-webkit-letter-spacing:0.12rem;-moz-letter-spacing:0.12rem;-ms-letter-spacing:0.12rem;letter-spacing:0.12rem;text-transform:uppercase;color:#1E212A;padding-bottom:1.6rem;border-bottom:0.05rem solid #737981;margin:0 0 1.6rem;}/*!sc*/ .hDVpcD{font-family:'SpaceGrotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.2rem;line-height:1.8rem;-webkit-letter-spacing:0.12rem;-moz-letter-spacing:0.12rem;-ms-letter-spacing:0.12rem;letter-spacing:0.12rem;text-transform:uppercase;color:#BDC4CF;padding-bottom:1.6rem;border-bottom:0.05rem solid #8B929B;margin:0 0 1.6rem;}/*!sc*/ data-styled.g246[id="sc-26497cf7-6"]{content:"gVrotW,hDVpcD,"}/*!sc*/ .hjjGrC{display:grid;grid-template-columns:1fr;-webkit-column-gap:3.2rem;column-gap:3.2rem;}/*!sc*/ @media screen and (min-width:990px){.hjjGrC{grid-auto-flow:column;grid-template-rows:repeat(5,auto);grid-template-columns:1fr 1fr;}}/*!sc*/ data-styled.g247[id="sc-26497cf7-7"]{content:"hjjGrC,"}/*!sc*/ .jKzKvn p{color:#FFFFFF;background:#595E66;margin:0;}/*!sc*/ data-styled.g248[id="sc-26497cf7-8"]{content:"jKzKvn,"}/*!sc*/ .guSDKl{display:grid;grid-template-areas: 'icon .' 'icon .';grid-template-columns:3.2rem auto;grid-gap:0.4rem 2.4rem;-webkit-text-decoration:none;text-decoration:none;padding:1.6rem 0;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}/*!sc*/ .guSDKl + a{border-top:0.05rem solid grey;}/*!sc*/ .guSDKl p:first-of-type:after{content:'→';position:absolute;margin-left:0.6rem;opacity:0;-webkit-transition:all 0.1s ease-in-out;transition:all 0.1s ease-in-out;}/*!sc*/ .guSDKl:hover p:first-of-type:after{opacity:1;}/*!sc*/ .guSDKl:hover p:last-of-type{color:#1E212A;}/*!sc*/ @media screen and (min-width:990px){.guSDKl:nth-child(6){border:none;}}/*!sc*/ @media screen and (min-width:1200px){.guSDKl{grid-template-columns:4rem auto;}.guSDKl:nth-child(n+6){grid-template-columns:2rem auto;}}/*!sc*/ .iiWQyp{display:grid;grid-template-areas: 'icon .' 'icon .';grid-template-columns:3.2rem auto;grid-gap:0.4rem 2.4rem;-webkit-text-decoration:none;text-decoration:none;padding:1.6rem 0;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}/*!sc*/ .iiWQyp + a{border-top:0.05rem solid grey;}/*!sc*/ .iiWQyp p:first-of-type:after{content:'→';position:absolute;margin-left:0.6rem;opacity:0;-webkit-transition:all 0.1s ease-in-out;transition:all 0.1s ease-in-out;}/*!sc*/ .iiWQyp:hover p:first-of-type:after{opacity:1;}/*!sc*/ .iiWQyp:hover p:last-of-type{color:#FFFFFF;}/*!sc*/ @media screen and (min-width:990px){.iiWQyp:nth-child(6){border:none;}}/*!sc*/ @media screen and (min-width:1200px){.iiWQyp{grid-template-columns:4rem auto;}.iiWQyp:nth-child(n+6){grid-template-columns:2rem auto;}}/*!sc*/ data-styled.g249[id="sc-26497cf7-9"]{content:"guSDKl,iiWQyp,"}/*!sc*/ .ccHsGw{grid-area:icon;}/*!sc*/ data-styled.g250[id="sc-26497cf7-10"]{content:"ccHsGw,"}/*!sc*/ .iPSjiy{max-width:121.6rem;margin:6.4rem auto 0;padding:0 1.6rem;position:relative;z-index:4;}/*!sc*/ .iPSjiy:before,.iPSjiy:after{content:'';width:7.2rem;position:absolute;top:3.5rem;bottom:0;background:linear-gradient( 90deg, #3a3e44 0%, rgba(66,70,77,0.5) 54.69%, rgba(66,70,77,0) 100% );-webkit-transform:matrix(1,0,0,-1,0,0);-ms-transform:matrix(1,0,0,-1,0,0);transform:matrix(1,0,0,-1,0,0);}/*!sc*/ .iPSjiy:before{display:none;}/*!sc*/ .iPSjiy:after{right:0;background:linear-gradient( 90deg, #3a3e44 0%, rgba(66,70,77,0.5) 54.69%, rgba(66,70,77,0) 100% );-webkit-transform:matrix(-1,0,0,1,0,0);-ms-transform:matrix(-1,0,0,1,0,0);transform:matrix(-1,0,0,1,0,0);}/*!sc*/ .iPSjiy > section > div > div{overflow-y:visible;padding-top:3.2rem;gap:1.6rem;}/*!sc*/ .iPSjiy div[role='tooltip'],.iPSjiy div[role='tooltip'] span::before{background:#000000;}/*!sc*/ @media screen and (min-width:990px){.iPSjiy > section > div > div{gap:2.4rem;}}/*!sc*/ @media screen and (min-width:990px){.iPSjiy{padding:0;overflow:hidden;}}/*!sc*/ @media screen and (min-width:1200px){.iPSjiy:after{background:linear-gradient( 90deg, #3f434a 0%, rgba(66,70,77,0.5) 54.69%, rgba(66,70,77,0) 100% );}}/*!sc*/ data-styled.g251[id="sc-26497cf7-11"]{content:"iPSjiy,"}/*!sc*/ .eHKvVm{width:5rem;margin:0 auto 1.6rem;height:auto;aspect-ratio:1 /1;position:relative;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}/*!sc*/ @media screen and (min-width:1200px){.eHKvVm{width:6.4rem;}}/*!sc*/ data-styled.g252[id="sc-26497cf7-12"]{content:"eHKvVm,"}/*!sc*/ .cmHbVl{text-align:center;-webkit-text-decoration:none;text-decoration:none;min-width:13.1rem;}/*!sc*/ .cmHbVl:hover{z-index:10;}/*!sc*/ .cmHbVl:hover .sc-26497cf7-12{-webkit-transform:scale(1.125);-ms-transform:scale(1.125);transform:scale(1.125);}/*!sc*/ data-styled.g253[id="sc-26497cf7-13"]{content:"cmHbVl,"}/*!sc*/ .fKhkQL{display:none;}/*!sc*/ @media screen and (min-width:1200px){.fKhkQL{display:block;position:absolute;top:50%;left:0;right:0;-webkit-transform:rotate(180deg) translateY(50%);-ms-transform:rotate(180deg) translateY(50%);transform:rotate(180deg) translateY(50%);}}/*!sc*/ data-styled.g254[id="sc-26497cf7-14"]{content:"fKhkQL,"}/*!sc*/ .fGXoOF{max-width:121.6rem;margin:0 auto 3.2rem;padding:0 1.6rem 4.8rem;border-bottom:0.05rem solid #3A3E44;}/*!sc*/ @media screen and (min-width:990px){.fGXoOF{padding:0 2.4rem 10.4rem;margin-bottom:6.4rem;}}/*!sc*/ @media screen and (min-width:1200px){.fGXoOF{padding:0 0 6.4rem;}}/*!sc*/ data-styled.g255[id="sc-b98219fb-0"]{content:"fGXoOF,"}/*!sc*/ .bZDsbc{font-family:'SpaceGrotesk',sans-serif;font-style:normal;font-weight:600;font-size:1.2rem;line-height:1.8rem;-webkit-letter-spacing:0.12rem;-moz-letter-spacing:0.12rem;-ms-letter-spacing:0.12rem;letter-spacing:0.12rem;text-transform:uppercase;color:#BDC4CF;padding-bottom:1.6rem;border-bottom:0.05rem solid #3A3E44;margin:0 0 1.6rem;}/*!sc*/ data-styled.g256[id="sc-b98219fb-1"]{content:"bZDsbc,"}/*!sc*/ .gLlsoc{padding:3.2rem 0.4rem 1.6rem;}/*!sc*/ data-styled.g257[id="sc-b98219fb-2"]{content:"gLlsoc,"}/*!sc*/ .jRdQsF{display:grid;grid-template-columns:repeat(4,1fr);-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-column-gap:2.4rem;column-gap:2.4rem;overflow-x:scroll;border-radius:1.6rem;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none;}/*!sc*/ .jRdQsF::-webkit-scrollbar{display:none;}/*!sc*/ @media screen and (min-width:990px){.jRdQsF{overflow:auto;}}/*!sc*/ @media screen and (min-width:1200px){.jRdQsF{-webkit-column-gap:3.2rem;column-gap:3.2rem;}}/*!sc*/ data-styled.g258[id="sc-b98219fb-3"]{content:"jRdQsF,"}/*!sc*/ .cgMGoc{padding:0 2rem;}/*!sc*/ .cgMGoc p:nth-child(2){text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}/*!sc*/ data-styled.g259[id="sc-b98219fb-4"]{content:"cgMGoc,"}/*!sc*/ .kltfAL{-webkit-text-decoration:none;text-decoration:none;background:#3A3E44;padding:0.4rem 0.4rem 2.4rem;border-radius:1.6rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;row-gap:2.4rem;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}/*!sc*/ .kltfAL p:first-of-type{position:relative;}/*!sc*/ .kltfAL p:first-of-type:after{content:'→';position:absolute;margin-left:0.6rem;opacity:0;-webkit-transition:all 0.1s ease-in-out;transition:all 0.1s ease-in-out;}/*!sc*/ .kltfAL:hover p{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .kltfAL:hover p:first-of-type:after{opacity:1;}/*!sc*/ .kltfAL:hover p:last-of-type{-webkit-transition:all 0.1s ease-in-out;transition:all 0.1s ease-in-out;color:#FFFFFF;}/*!sc*/ @media screen and (min-width:1200px){.kltfAL{padding-bottom:3.2rem;}}/*!sc*/ data-styled.g260[id="sc-b98219fb-5"]{content:"kltfAL,"}/*!sc*/ .cnSHJi{width:20.8rem;height:12rem;border-radius:1.6rem 1.6rem 0 0;position:relative;overflow:hidden;margin:0;}/*!sc*/ .cnSHJi img{object-fit:cover;}/*!sc*/ @media screen and (min-width:990px){.cnSHJi{width:100%;}}/*!sc*/ @media screen and (min-width:1200px){.cnSHJi{width:26.9rem;}}/*!sc*/ data-styled.g261[id="sc-b98219fb-6"]{content:"cnSHJi,"}/*!sc*/ .TDuvq input,.TDuvq select{background-color:#1E212A;color:#DADFE8;border-color:#3A3E44;}/*!sc*/ .TDuvq input:focus-within,.TDuvq select:focus-within,.TDuvq input:focus,.TDuvq select:focus,.TDuvq input:hover:not([disabled]),.TDuvq select:hover:not([disabled]){border-color:#595E66;}/*!sc*/ .TDuvq fieldset,.TDuvq select{border-color:#3A3E44;}/*!sc*/ .TDuvq fieldset:hover,.TDuvq select:hover,.TDuvq fieldset:hover:not([disabled]),.TDuvq select:hover:not([disabled]){border-color:#595E66;}/*!sc*/ .TDuvq select{border:none;}/*!sc*/ @media screen and (min-width:990px){.TDuvq{grid-column:7 / 13;}.TDuvq fieldset,.TDuvq select{background-color:#1E212A;color:#DADFE8;}.TDuvq fieldset:focus-within,.TDuvq select:focus-within{border-color:#595E66;}.TDuvq fieldset,.TDuvq select{width:100%;}}/*!sc*/ data-styled.g262[id="sc-16dca9de-0"]{content:"TDuvq,"}/*!sc*/ .guMZKf{margin:0 auto 0.2rem auto;font-size:6rem;height:15rem;width:12rem;-webkit-animation:foMDCV 0.5s linear;animation:foMDCV 0.5s linear;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ data-styled.g265[id="sc-16dca9de-3"]{content:"guMZKf,"}/*!sc*/ .eTLUSz{border:0.2rem solid #F1F3F7;border-left:0.2rem solid #1E212A;border-radius:50%;width:8rem;height:8rem;-webkit-animation:dvUGTh 0.8s infinite linear;animation:dvUGTh 0.8s infinite linear;}/*!sc*/ data-styled.g266[id="sc-16dca9de-4"]{content:"eTLUSz,"}/*!sc*/ .fOGJqL{padding:0 1.6rem;margin:0 auto 6.4rem;max-width:126.8rem;}/*!sc*/ @media screen and (min-width:990px){.fOGJqL{padding:0 2.4rem;display:grid;grid-template-columns:repeat(12,1fr);grid-gap:2.4rem;margin-bottom:10.8rem;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}/*!sc*/ @media screen and (min-width:990px){.fOGJqL{padding:0 2.4rem;grid-gap:3.2rem;margin-bottom:12rem;}}/*!sc*/ data-styled.g267[id="sc-113b1e24-0"]{content:"fOGJqL,"}/*!sc*/ @media screen and (min-width:990px){.glyahv{grid-column:1 / 5;}}/*!sc*/ @media screen and (min-width:990px){.glyahv{grid-column:1 / 7;}}/*!sc*/ data-styled.g268[id="sc-113b1e24-1"]{content:"glyahv,"}/*!sc*/ @media screen and (min-width:990px){.ceidYu{grid-column:7 / 13;}}/*!sc*/ data-styled.g269[id="sc-113b1e24-2"]{content:"ceidYu,"}/*!sc*/ html{background-color:#1E212A;}/*!sc*/ data-styled.g270[id="sc-global-imRxbC1"]{content:"sc-global-imRxbC1,"}/*!sc*/ @-webkit-keyframes foMDCV{0%{opacity:0;}100%{opacity:1;}}/*!sc*/ @keyframes foMDCV{0%{opacity:0;}100%{opacity:1;}}/*!sc*/ data-styled.g271[id="sc-keyframes-foMDCV"]{content:"foMDCV,"}/*!sc*/ @-webkit-keyframes dvUGTh{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}/*!sc*/ @keyframes dvUGTh{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}/*!sc*/ data-styled.g272[id="sc-keyframes-dvUGTh"]{content:"dvUGTh,"}/*!sc*/ </style></head><body><div id="__next" data-reactroot=""><div class="sc-6baadd7-1 krShWi"></div><div class="sc-6baadd7-5 fZyAee"></div><header class="sc-6baadd7-0 cIXLMG"><div class="sc-6baadd7-2 dRVfWQ"><div class="sc-6baadd7-3 jMMhbP"><a target="_blank" href="https://a0.to/watch-best-of-devday24" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cIdkDp dyDPBJ">Missed DevDay24? Register for the Best of DevDay</a><button class="sc-6baadd7-4 dYWVEL">+</button></div></div><div class="sc-be6810b1-0 cDgzsN"><a rel="external" arial-label="Homepage link" href="https://developers.auth0.com/"><svg width="260" height="32" viewBox="0 0 260 32" fill="none" xmlns="http://www.w3.org/2000/svg" role="img"><title>Auth0 Developer Logo</title><path d="M35.0768 20.0987C35.0768 16.6589 37.9306 15.3594 41.523 15.3594H45.0138C45.2686 15.3594 45.3961 15.2318 45.3961 14.9771V14.4422C45.3961 12.5822 43.995 11.6904 41.9309 11.6904C40.3256 11.6904 39.2301 12.2258 38.6437 13.3723C38.4401 13.7801 38.2615 13.9327 37.8286 13.9327H36.3253C35.8414 13.9327 35.6118 13.678 35.6118 13.2957C35.6118 13.1171 35.6628 12.8624 35.8665 12.4295C36.8348 10.4168 38.7203 9.11731 42.2366 9.11731C46.1603 9.11731 48.4791 10.8502 48.4791 14.6463V20.9398C48.4791 21.5768 48.7083 21.7299 49.2433 21.7299H49.2688C49.7782 21.7299 50.033 21.9846 50.033 22.4941V23.7681C50.033 24.2775 49.7782 24.5323 49.2688 24.5323H48.3771C46.9244 24.5323 46.1858 24.15 45.727 23.1562C45.6504 22.9776 45.5994 22.927 45.4978 22.927C45.3961 22.927 45.3192 22.978 45.1155 23.1562C43.969 24.1755 42.5419 24.7104 40.6309 24.7104C37.7261 24.7104 35.0764 23.3599 35.0764 20.0987H35.0768ZM45.3961 18.3659V18.1111C45.3961 17.8564 45.2686 17.7289 45.0138 17.7289H41.1918C39.4083 17.7289 38.1598 18.3914 38.1598 19.9711C38.1598 21.5509 39.4338 22.2134 40.9626 22.2134C43.3324 22.2134 45.3961 20.7353 45.3961 18.3659Z" fill="white"></path><path d="M51.3072 17.876V10.0538C51.3072 9.54432 51.562 9.2896 52.0714 9.2896H53.6256C54.1351 9.2896 54.3898 9.54432 54.3898 10.0538V17.5958C54.3898 20.0418 55.2815 21.8508 57.8296 21.8508C60.5307 21.8508 61.8043 19.7105 61.8043 17.239V10.0533C61.8043 9.5439 62.059 9.28918 62.5684 9.28918H64.1227C64.6321 9.28918 64.8869 9.5439 64.8869 10.0533V23.7618C64.8869 24.2712 64.6321 24.526 64.1227 24.526H62.7215C62.2627 24.526 62.008 24.2967 61.9314 23.8379L61.8039 23.1499C61.7784 22.9968 61.7018 22.9207 61.5747 22.9207C61.473 22.9207 61.3965 22.9717 61.2693 23.0993C60.2245 24.042 58.9505 24.7046 57.065 24.7046C53.0648 24.7046 51.3064 21.8253 51.3064 17.876H51.3072Z" fill="white"></path><path d="M67.7424 20.377V4.93616C67.7424 4.42672 67.9971 4.172 68.5065 4.172H70.0608C70.5702 4.172 70.8249 4.42672 70.8249 4.93616V8.91087C70.8249 9.1656 70.9525 9.29316 71.2072 9.29316H75.7173C76.2268 9.29316 76.4815 9.54788 76.4815 10.0573V11.3313C76.4815 11.8408 76.2268 12.0959 75.7173 12.0959H71.2072C70.9525 12.0959 70.8249 12.2235 70.8249 12.4782V20.0968C70.8249 21.2177 71.3344 21.7276 72.4808 21.7276H76.0226C76.5321 21.7276 76.7868 21.9823 76.7868 22.4918V23.7658C76.7868 24.2752 76.5321 24.5299 76.0226 24.5299H72.3282C69.1431 24.5299 67.7419 23.2559 67.7419 20.3766L67.7424 20.377Z" fill="white"></path><path d="M78.9031 23.7658V4.93616C78.9031 4.42672 79.1578 4.172 79.6672 4.172H81.2215C81.7309 4.172 81.9856 4.42672 81.9856 4.93616V10.8729C81.9856 11.026 82.0873 11.1277 82.2149 11.1277C82.2914 11.1277 82.3675 11.1021 82.5971 10.8984C83.7181 9.87915 84.9411 9.11499 87.0052 9.11499C90.9799 9.11499 92.7638 11.9177 92.7638 16.0455V23.7662C92.7638 24.2756 92.5091 24.5304 91.9996 24.5304H90.4454C89.9359 24.5304 89.6812 24.2756 89.6812 23.7662V16.1986C89.6812 13.8288 88.764 11.9688 86.267 11.9688C83.5913 11.9688 81.9865 14.1345 81.9865 17.1924V23.7662C81.9865 24.2756 81.7318 24.5304 81.2223 24.5304H79.6681C79.1586 24.5304 78.9039 24.2756 78.9039 23.7662L78.9031 23.7658Z" fill="white"></path><path d="M94.6995 14.3628C94.6995 7.45771 97.3746 3.99243 102.165 3.99243C106.955 3.99243 109.63 7.45771 109.63 14.3628C109.63 21.2678 106.955 24.7076 102.165 24.7076C97.3751 24.7076 94.6995 21.2423 94.6995 14.3628ZM98.445 16.6816L105.197 9.19056C105.299 9.06299 105.35 8.98687 105.35 8.80827C105.35 8.6807 105.325 8.52804 105.146 8.29841C104.458 7.45771 103.49 6.84621 102.165 6.84621C99.3626 6.84621 97.7829 9.39425 97.7829 14.3883C97.7829 15.1014 97.8084 15.7388 97.9104 16.605C97.936 16.7581 98.0121 16.8598 98.1396 16.8598C98.2162 16.8598 98.3182 16.8342 98.4454 16.6816H98.445ZM106.547 14.3117C106.547 13.5982 106.522 12.9612 106.42 12.095C106.394 11.9419 106.318 11.8402 106.191 11.8402C106.114 11.8402 106.012 11.8657 105.885 12.0188L99.1326 19.5099C99.031 19.6374 98.9799 19.7135 98.9799 19.8921C98.9799 20.0197 99.0055 20.1724 99.1836 20.4016C99.8717 21.2423 100.84 21.8538 102.165 21.8538C104.968 21.8538 106.547 19.3057 106.547 14.3117H106.547Z" fill="white"></path><path d="M1.68935 13.6673C6.93599 12.8036 11.0479 8.69124 11.912 3.4446L12.3324 0.893214C12.4131 0.399668 12.0078 -0.0357391 11.5088 0.0023225C7.51403 0.311416 3.74928 1.63395 1.67011 2.48636C0.660431 2.90086 0 3.8821 0 4.97417V13.039C0 13.5134 0.424115 13.8743 0.892565 13.7974L1.68935 13.6669V13.6673Z" fill="white"></path><path d="M14.4422 3.44423C15.3059 8.69088 19.4183 12.8028 24.6649 13.6669L25.4617 13.7974C25.9302 13.8744 26.3543 13.5134 26.3543 13.0391V4.97423C26.3543 3.88173 25.6938 2.90092 24.6842 2.48642C22.605 1.63234 18.8386 0.311472 14.8454 0.00237818C14.3465 -0.0361017 13.9395 0.398052 14.0219 0.893271L14.4422 3.44465V3.44423Z" fill="white"></path><path d="M24.665 16.1959C19.4184 17.0596 15.3065 21.1719 14.4423 26.4186L13.9183 31.3983C13.8702 31.8476 14.3696 32.1642 14.7456 31.9128C14.7494 31.9107 14.7514 31.909 14.7552 31.907C18.0457 29.6877 25.5517 23.8785 26.2946 16.6221C26.331 16.2649 26.0143 15.9734 25.6609 16.0307L24.6663 16.1938L24.6642 16.1959H24.665Z" fill="white"></path><path d="M11.9135 26.4136C11.0498 21.167 6.93746 17.055 1.69082 16.1909L0.621329 16.0144C0.30638 15.9625 0.024473 16.2235 0.0550059 16.5423C0.759355 23.8392 8.36917 29.6848 11.6885 31.9079C12.0323 32.1362 12.4869 31.8618 12.443 31.4511L11.9131 26.4136H11.9135Z" fill="white"></path><path d="M127.968 24.5H121.472V4.2H127.968C134.319 4.2 138.176 8.26 138.176 14.35C138.176 20.411 134.319 24.5 127.968 24.5ZM123.995 6.52V22.18H127.968C132.898 22.18 135.595 19.077 135.595 14.35C135.595 9.594 132.898 6.52 127.968 6.52H123.995ZM147.24 24.674C142.803 24.674 139.903 21.629 139.903 17.105C139.903 12.61 142.745 9.536 146.921 9.536C151.097 9.536 153.823 12.175 153.939 16.554C153.939 16.873 153.91 17.221 153.881 17.569H142.397V17.772C142.484 20.585 144.253 22.557 147.066 22.557C149.154 22.557 150.778 21.455 151.271 19.541H153.678C153.098 22.499 150.662 24.674 147.24 24.674ZM142.542 15.597H151.387C151.155 13.045 149.415 11.624 146.95 11.624C144.775 11.624 142.774 13.19 142.542 15.597ZM159.481 24.5L153.942 9.71H156.494L160.96 21.803L165.397 9.71H167.891L162.352 24.5H159.481ZM175.25 24.674C170.813 24.674 167.913 21.629 167.913 17.105C167.913 12.61 170.755 9.536 174.931 9.536C179.107 9.536 181.833 12.175 181.949 16.554C181.949 16.873 181.92 17.221 181.891 17.569H170.407V17.772C170.494 20.585 172.263 22.557 175.076 22.557C177.164 22.557 178.788 21.455 179.281 19.541H181.688C181.108 22.499 178.672 24.674 175.25 24.674ZM170.552 15.597H179.397C179.165 13.045 177.425 11.624 174.96 11.624C172.785 11.624 170.784 13.19 170.552 15.597ZM184.082 24.5V4.2H186.46V24.5H184.082ZM195.953 24.674C191.632 24.674 188.616 21.6 188.616 17.105C188.616 12.61 191.632 9.536 195.953 9.536C200.274 9.536 203.29 12.61 203.29 17.105C203.29 21.6 200.274 24.674 195.953 24.674ZM195.953 22.557C198.882 22.557 200.854 20.266 200.854 17.105C200.854 13.944 198.882 11.653 195.953 11.653C193.024 11.653 191.052 13.944 191.052 17.105C191.052 20.266 193.024 22.557 195.953 22.557ZM212.89 9.536C216.979 9.536 219.995 12.291 219.995 17.105C219.995 21.629 216.979 24.674 212.89 24.674C210.396 24.674 208.714 23.659 207.815 22.238V30.3H205.437V9.71H207.496L207.815 12.088C208.801 10.725 210.396 9.536 212.89 9.536ZM212.658 22.557C215.587 22.557 217.559 20.324 217.559 17.105C217.559 13.886 215.587 11.653 212.658 11.653C209.758 11.653 207.786 13.886 207.786 17.047C207.786 20.295 209.758 22.557 212.658 22.557ZM228.947 24.674C224.51 24.674 221.61 21.629 221.61 17.105C221.61 12.61 224.452 9.536 228.628 9.536C232.804 9.536 235.53 12.175 235.646 16.554C235.646 16.873 235.617 17.221 235.588 17.569H224.104V17.772C224.191 20.585 225.96 22.557 228.773 22.557C230.861 22.557 232.485 21.455 232.978 19.541H235.385C234.805 22.499 232.369 24.674 228.947 24.674ZM224.249 15.597H233.094C232.862 13.045 231.122 11.624 228.657 11.624C226.482 11.624 224.481 13.19 224.249 15.597ZM244.624 9.71H245.291V12.03H244.102C240.999 12.03 240.158 14.611 240.158 16.96V24.5H237.78V9.71H239.839L240.158 11.943C240.854 10.812 241.985 9.71 244.624 9.71ZM245.852 19.628H248.288C248.375 21.368 249.912 22.644 252.377 22.644C254.465 22.644 255.944 21.745 255.944 20.382C255.944 18.526 254.32 18.381 252.116 18.12C248.81 17.714 246.171 17.047 246.171 13.973C246.171 11.276 248.636 9.507 251.971 9.536C255.335 9.565 257.771 11.131 258.003 14.205H255.567C255.393 12.697 254.001 11.566 251.971 11.566C249.912 11.566 248.52 12.436 248.52 13.799C248.52 15.423 250.086 15.626 252.232 15.887C255.596 16.293 258.293 16.931 258.293 20.208C258.293 22.963 255.654 24.674 252.377 24.674C248.549 24.674 245.91 22.876 245.852 19.628Z" fill="white"></path></svg></a><button aria-label="Menu" aria-expanded="false" class="sc-be6810b1-1 irQZPJ"><span class="sc-be6810b1-2 iDNvjh"></span></button></div><nav role="navigation" aria-label="mobile-navigation" class="sc-be6810b1-3 ciIyrr"><details class="sc-be6810b1-5 dTaUBA"><summary class="sc-be6810b1-4 bBQMeO"><span class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 jjxBdz kHaByn">Docs</span><svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1.5L4 4.5L7 1.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></summary><div class="sc-be6810b1-6 izwFws"><p class="sc-be6810b1-7 leiOrm">Documentation</p><ul class="sc-be6810b1-8 iwzxjv"><li class="sc-be6810b1-9 jiJIvS"><a href="https://auth0.com/docs/quickstarts/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Quickstarts</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://auth0.com/docs/api" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Auth0 APIs</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://auth0.com/docs/libraries" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">SDK Libraries</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://auth0.com/docs/articles" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Articles</a></li></ul></div></details><details class="sc-be6810b1-5 dTaUBA"><summary class="sc-be6810b1-4 bBQMeO"><span class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 jjxBdz kHaByn">Resources</span><svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1.5L4 4.5L7 1.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></summary><div class="sc-be6810b1-6 izwFws"><p class="sc-be6810b1-7 leiOrm">Resources</p><ul class="sc-be6810b1-8 iwzxjv"><li class="sc-be6810b1-9 jiJIvS"><a href="https://developer.auth0.com/resources/code-samples" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Code Samples</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://developer.auth0.com/resources/guides" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Guides</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://developer.auth0.com/resources/labs" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Labs</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://developer.auth0.com/resources/workshops" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Workshops</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://auth0.com/blog/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Blog Posts</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://youtube.com/oktadev" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Videos</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://developer.auth0.com/resources/templates" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Templates</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://developers.auth0.com/newsletter" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Zero Index Newsletter</a></li></ul></div><div class="sc-be6810b1-6 izwFws"><p class="sc-be6810b1-7 leiOrm">Developer tools</p><ul class="sc-be6810b1-8 iwzxjv"><li class="sc-be6810b1-9 jiJIvS"><a href="https://jwt.io/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">JWT Tool</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://webauthn.me" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Webauthn Playground</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://learnpasskeys.io/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Passkeys Playground</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://openidconnect.net/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">OpenID Connect Playground</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://samltool.io/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">SAML Tool</a></li></ul></div></details><details class="sc-be6810b1-5 dTaUBA"><summary class="sc-be6810b1-4 bBQMeO"><span class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 jjxBdz kHaByn">Community</span><svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1.5L4 4.5L7 1.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></summary><div class="sc-be6810b1-6 izwFws"><p class="sc-be6810b1-7 leiOrm">Community</p><ul class="sc-be6810b1-8 iwzxjv"><li class="sc-be6810b1-9 jiJIvS"><a href="https://community.auth0.com/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Forum</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://developers.auth0.com/events" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Events</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://auth0.com/ambassador-program" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Ambassador Program</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://support.auth0.com/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Support</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://auth0.com/apollo-program" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Auth0 Apollo Program</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://auth0.com/research-program" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Auth0 Research Program</a></li></ul></div></details><details class="sc-be6810b1-5 dTaUBA"><summary class="sc-be6810b1-4 bBQMeO"><span class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 jjxBdz kHaByn">Get Started</span><svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1.5L4 4.5L7 1.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></summary><div class="sc-be6810b1-6 izwFws"><p class="sc-be6810b1-7 leiOrm">Get Started</p><ul class="sc-be6810b1-8 iwzxjv"><li class="sc-be6810b1-9 jiJIvS"><a href="https://developer.auth0.com/resources/get-started/mobile" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Native/Mobile App</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://developer.auth0.com/resources/get-started/spa" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Single-Page App</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://developer.auth0.com/resources/get-started/web-app" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Regular Web App</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://developer.auth0.com/resources/get-started/api" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Backend/API</a></li><li class="sc-be6810b1-9 jiJIvS"><a href="https://developer.auth0.com/resources/get-started/cloud" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 HGwAF kHaByn">Cloud App</a></li></ul></div></details><div class="sc-be6810b1-10 MTdXR"><a href="https://auth0.com/api/auth/login?redirectTo=dashboard" role="button" tabindex="0" class="styled__Button-sc-1hwml9q-0 utils-sc-11hlfw-0 inRMJe kHaByn"><span>Log in</span></a><a href="https://auth0.com/signup?promo=devonly-web&amp;place=topbar-dev-center&amp;origin=auth0-dev-center" role="button" tabindex="0" class="styled__Button-sc-1hwml9q-0 utils-sc-11hlfw-0 inRMJe kHaByn"><span>Sign up</span></a><a href="https://auth0.com/contact-us" role="button" tabindex="0" class="styled__Button-sc-1hwml9q-0 utils-sc-11hlfw-0 dfvwwf kHaByn"><span>Contact sales</span></a></div></nav><nav role="navigation" aria-label="top-navigation" class="sc-905af812-3 jJDwem"><a rel="external" aria-label="Homepage link" href="https://developers.auth0.com/" class="sc-905af812-4 ZlTga"><svg width="260" height="32" viewBox="0 0 260 32" fill="none" xmlns="http://www.w3.org/2000/svg" role="img"><title>Auth0 Developer Logo</title><path d="M35.0768 20.0987C35.0768 16.6589 37.9306 15.3594 41.523 15.3594H45.0138C45.2686 15.3594 45.3961 15.2318 45.3961 14.9771V14.4422C45.3961 12.5822 43.995 11.6904 41.9309 11.6904C40.3256 11.6904 39.2301 12.2258 38.6437 13.3723C38.4401 13.7801 38.2615 13.9327 37.8286 13.9327H36.3253C35.8414 13.9327 35.6118 13.678 35.6118 13.2957C35.6118 13.1171 35.6628 12.8624 35.8665 12.4295C36.8348 10.4168 38.7203 9.11731 42.2366 9.11731C46.1603 9.11731 48.4791 10.8502 48.4791 14.6463V20.9398C48.4791 21.5768 48.7083 21.7299 49.2433 21.7299H49.2688C49.7782 21.7299 50.033 21.9846 50.033 22.4941V23.7681C50.033 24.2775 49.7782 24.5323 49.2688 24.5323H48.3771C46.9244 24.5323 46.1858 24.15 45.727 23.1562C45.6504 22.9776 45.5994 22.927 45.4978 22.927C45.3961 22.927 45.3192 22.978 45.1155 23.1562C43.969 24.1755 42.5419 24.7104 40.6309 24.7104C37.7261 24.7104 35.0764 23.3599 35.0764 20.0987H35.0768ZM45.3961 18.3659V18.1111C45.3961 17.8564 45.2686 17.7289 45.0138 17.7289H41.1918C39.4083 17.7289 38.1598 18.3914 38.1598 19.9711C38.1598 21.5509 39.4338 22.2134 40.9626 22.2134C43.3324 22.2134 45.3961 20.7353 45.3961 18.3659Z" fill="white"></path><path d="M51.3072 17.876V10.0538C51.3072 9.54432 51.562 9.2896 52.0714 9.2896H53.6256C54.1351 9.2896 54.3898 9.54432 54.3898 10.0538V17.5958C54.3898 20.0418 55.2815 21.8508 57.8296 21.8508C60.5307 21.8508 61.8043 19.7105 61.8043 17.239V10.0533C61.8043 9.5439 62.059 9.28918 62.5684 9.28918H64.1227C64.6321 9.28918 64.8869 9.5439 64.8869 10.0533V23.7618C64.8869 24.2712 64.6321 24.526 64.1227 24.526H62.7215C62.2627 24.526 62.008 24.2967 61.9314 23.8379L61.8039 23.1499C61.7784 22.9968 61.7018 22.9207 61.5747 22.9207C61.473 22.9207 61.3965 22.9717 61.2693 23.0993C60.2245 24.042 58.9505 24.7046 57.065 24.7046C53.0648 24.7046 51.3064 21.8253 51.3064 17.876H51.3072Z" fill="white"></path><path d="M67.7424 20.377V4.93616C67.7424 4.42672 67.9971 4.172 68.5065 4.172H70.0608C70.5702 4.172 70.8249 4.42672 70.8249 4.93616V8.91087C70.8249 9.1656 70.9525 9.29316 71.2072 9.29316H75.7173C76.2268 9.29316 76.4815 9.54788 76.4815 10.0573V11.3313C76.4815 11.8408 76.2268 12.0959 75.7173 12.0959H71.2072C70.9525 12.0959 70.8249 12.2235 70.8249 12.4782V20.0968C70.8249 21.2177 71.3344 21.7276 72.4808 21.7276H76.0226C76.5321 21.7276 76.7868 21.9823 76.7868 22.4918V23.7658C76.7868 24.2752 76.5321 24.5299 76.0226 24.5299H72.3282C69.1431 24.5299 67.7419 23.2559 67.7419 20.3766L67.7424 20.377Z" fill="white"></path><path d="M78.9031 23.7658V4.93616C78.9031 4.42672 79.1578 4.172 79.6672 4.172H81.2215C81.7309 4.172 81.9856 4.42672 81.9856 4.93616V10.8729C81.9856 11.026 82.0873 11.1277 82.2149 11.1277C82.2914 11.1277 82.3675 11.1021 82.5971 10.8984C83.7181 9.87915 84.9411 9.11499 87.0052 9.11499C90.9799 9.11499 92.7638 11.9177 92.7638 16.0455V23.7662C92.7638 24.2756 92.5091 24.5304 91.9996 24.5304H90.4454C89.9359 24.5304 89.6812 24.2756 89.6812 23.7662V16.1986C89.6812 13.8288 88.764 11.9688 86.267 11.9688C83.5913 11.9688 81.9865 14.1345 81.9865 17.1924V23.7662C81.9865 24.2756 81.7318 24.5304 81.2223 24.5304H79.6681C79.1586 24.5304 78.9039 24.2756 78.9039 23.7662L78.9031 23.7658Z" fill="white"></path><path d="M94.6995 14.3628C94.6995 7.45771 97.3746 3.99243 102.165 3.99243C106.955 3.99243 109.63 7.45771 109.63 14.3628C109.63 21.2678 106.955 24.7076 102.165 24.7076C97.3751 24.7076 94.6995 21.2423 94.6995 14.3628ZM98.445 16.6816L105.197 9.19056C105.299 9.06299 105.35 8.98687 105.35 8.80827C105.35 8.6807 105.325 8.52804 105.146 8.29841C104.458 7.45771 103.49 6.84621 102.165 6.84621C99.3626 6.84621 97.7829 9.39425 97.7829 14.3883C97.7829 15.1014 97.8084 15.7388 97.9104 16.605C97.936 16.7581 98.0121 16.8598 98.1396 16.8598C98.2162 16.8598 98.3182 16.8342 98.4454 16.6816H98.445ZM106.547 14.3117C106.547 13.5982 106.522 12.9612 106.42 12.095C106.394 11.9419 106.318 11.8402 106.191 11.8402C106.114 11.8402 106.012 11.8657 105.885 12.0188L99.1326 19.5099C99.031 19.6374 98.9799 19.7135 98.9799 19.8921C98.9799 20.0197 99.0055 20.1724 99.1836 20.4016C99.8717 21.2423 100.84 21.8538 102.165 21.8538C104.968 21.8538 106.547 19.3057 106.547 14.3117H106.547Z" fill="white"></path><path d="M1.68935 13.6673C6.93599 12.8036 11.0479 8.69124 11.912 3.4446L12.3324 0.893214C12.4131 0.399668 12.0078 -0.0357391 11.5088 0.0023225C7.51403 0.311416 3.74928 1.63395 1.67011 2.48636C0.660431 2.90086 0 3.8821 0 4.97417V13.039C0 13.5134 0.424115 13.8743 0.892565 13.7974L1.68935 13.6669V13.6673Z" fill="white"></path><path d="M14.4422 3.44423C15.3059 8.69088 19.4183 12.8028 24.6649 13.6669L25.4617 13.7974C25.9302 13.8744 26.3543 13.5134 26.3543 13.0391V4.97423C26.3543 3.88173 25.6938 2.90092 24.6842 2.48642C22.605 1.63234 18.8386 0.311472 14.8454 0.00237818C14.3465 -0.0361017 13.9395 0.398052 14.0219 0.893271L14.4422 3.44465V3.44423Z" fill="white"></path><path d="M24.665 16.1959C19.4184 17.0596 15.3065 21.1719 14.4423 26.4186L13.9183 31.3983C13.8702 31.8476 14.3696 32.1642 14.7456 31.9128C14.7494 31.9107 14.7514 31.909 14.7552 31.907C18.0457 29.6877 25.5517 23.8785 26.2946 16.6221C26.331 16.2649 26.0143 15.9734 25.6609 16.0307L24.6663 16.1938L24.6642 16.1959H24.665Z" fill="white"></path><path d="M11.9135 26.4136C11.0498 21.167 6.93746 17.055 1.69082 16.1909L0.621329 16.0144C0.30638 15.9625 0.024473 16.2235 0.0550059 16.5423C0.759355 23.8392 8.36917 29.6848 11.6885 31.9079C12.0323 32.1362 12.4869 31.8618 12.443 31.4511L11.9131 26.4136H11.9135Z" fill="white"></path><path d="M127.968 24.5H121.472V4.2H127.968C134.319 4.2 138.176 8.26 138.176 14.35C138.176 20.411 134.319 24.5 127.968 24.5ZM123.995 6.52V22.18H127.968C132.898 22.18 135.595 19.077 135.595 14.35C135.595 9.594 132.898 6.52 127.968 6.52H123.995ZM147.24 24.674C142.803 24.674 139.903 21.629 139.903 17.105C139.903 12.61 142.745 9.536 146.921 9.536C151.097 9.536 153.823 12.175 153.939 16.554C153.939 16.873 153.91 17.221 153.881 17.569H142.397V17.772C142.484 20.585 144.253 22.557 147.066 22.557C149.154 22.557 150.778 21.455 151.271 19.541H153.678C153.098 22.499 150.662 24.674 147.24 24.674ZM142.542 15.597H151.387C151.155 13.045 149.415 11.624 146.95 11.624C144.775 11.624 142.774 13.19 142.542 15.597ZM159.481 24.5L153.942 9.71H156.494L160.96 21.803L165.397 9.71H167.891L162.352 24.5H159.481ZM175.25 24.674C170.813 24.674 167.913 21.629 167.913 17.105C167.913 12.61 170.755 9.536 174.931 9.536C179.107 9.536 181.833 12.175 181.949 16.554C181.949 16.873 181.92 17.221 181.891 17.569H170.407V17.772C170.494 20.585 172.263 22.557 175.076 22.557C177.164 22.557 178.788 21.455 179.281 19.541H181.688C181.108 22.499 178.672 24.674 175.25 24.674ZM170.552 15.597H179.397C179.165 13.045 177.425 11.624 174.96 11.624C172.785 11.624 170.784 13.19 170.552 15.597ZM184.082 24.5V4.2H186.46V24.5H184.082ZM195.953 24.674C191.632 24.674 188.616 21.6 188.616 17.105C188.616 12.61 191.632 9.536 195.953 9.536C200.274 9.536 203.29 12.61 203.29 17.105C203.29 21.6 200.274 24.674 195.953 24.674ZM195.953 22.557C198.882 22.557 200.854 20.266 200.854 17.105C200.854 13.944 198.882 11.653 195.953 11.653C193.024 11.653 191.052 13.944 191.052 17.105C191.052 20.266 193.024 22.557 195.953 22.557ZM212.89 9.536C216.979 9.536 219.995 12.291 219.995 17.105C219.995 21.629 216.979 24.674 212.89 24.674C210.396 24.674 208.714 23.659 207.815 22.238V30.3H205.437V9.71H207.496L207.815 12.088C208.801 10.725 210.396 9.536 212.89 9.536ZM212.658 22.557C215.587 22.557 217.559 20.324 217.559 17.105C217.559 13.886 215.587 11.653 212.658 11.653C209.758 11.653 207.786 13.886 207.786 17.047C207.786 20.295 209.758 22.557 212.658 22.557ZM228.947 24.674C224.51 24.674 221.61 21.629 221.61 17.105C221.61 12.61 224.452 9.536 228.628 9.536C232.804 9.536 235.53 12.175 235.646 16.554C235.646 16.873 235.617 17.221 235.588 17.569H224.104V17.772C224.191 20.585 225.96 22.557 228.773 22.557C230.861 22.557 232.485 21.455 232.978 19.541H235.385C234.805 22.499 232.369 24.674 228.947 24.674ZM224.249 15.597H233.094C232.862 13.045 231.122 11.624 228.657 11.624C226.482 11.624 224.481 13.19 224.249 15.597ZM244.624 9.71H245.291V12.03H244.102C240.999 12.03 240.158 14.611 240.158 16.96V24.5H237.78V9.71H239.839L240.158 11.943C240.854 10.812 241.985 9.71 244.624 9.71ZM245.852 19.628H248.288C248.375 21.368 249.912 22.644 252.377 22.644C254.465 22.644 255.944 21.745 255.944 20.382C255.944 18.526 254.32 18.381 252.116 18.12C248.81 17.714 246.171 17.047 246.171 13.973C246.171 11.276 248.636 9.507 251.971 9.536C255.335 9.565 257.771 11.131 258.003 14.205H255.567C255.393 12.697 254.001 11.566 251.971 11.566C249.912 11.566 248.52 12.436 248.52 13.799C248.52 15.423 250.086 15.626 252.232 15.887C255.596 16.293 258.293 16.931 258.293 20.208C258.293 22.963 255.654 24.674 252.377 24.674C248.549 24.674 245.91 22.876 245.852 19.628Z" fill="white"></path></svg></a><ul role="menubar" class="sc-905af812-5 bFtWCk"><li role="menuitem" aria-haspopup="true" tabindex="0" class="sc-905af812-2 cgiEAc"><div class="sc-905af812-1 gFhGko"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 gEFelT kHaByn">Docs<!-- --> <svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1.5L4 4.5L7 1.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></p></div><div class="sc-905af812-0 ikYBUn"><section class="sc-e3b7f1ce-0 iABRDb"><p class="sc-e3b7f1ce-1 jGXjwK">Documentation</p><div class="sc-e3b7f1ce-2 jxyAyz"><a rel="external" href="https://auth0.com/docs/quickstarts/" class="sc-e3b7f1ce-3 kUTCSR"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Quickstarts</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Step-by-step guides to quickly integrate Auth0 into your app.</p></a><a rel="external" href="https://auth0.com/docs/api" class="sc-e3b7f1ce-3 kUTCSR"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Auth0 APIs</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">APIs for developers to consume in their apps.</p></a><a rel="external" href="https://auth0.com/docs/libraries" class="sc-e3b7f1ce-3 kUTCSR"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">SDK Libraries</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Integrate and interact easily with Auth0</p></a><a rel="external" href="https://auth0.com/docs/articles" class="sc-e3b7f1ce-3 kUTCSR"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Articles</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Learn what the Auth0 platform has to offer.</p></a></div></section></div></li><li role="menuitem" aria-haspopup="true" tabindex="0" class="sc-905af812-2 cgiEAc"><div class="sc-905af812-1 gFhGko"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 gEFelT kHaByn">Resources<!-- --> <svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1.5L4 4.5L7 1.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></p></div><div class="sc-905af812-0 ikYBUn"><section class="sc-3ea2115e-0 dgcixe"><div class="sc-3ea2115e-2 gHgPiF"><p class="sc-3ea2115e-1 eONNrN">Resources</p><div class="sc-3ea2115e-3 gfdJUx"><a rel="external" href="https://developer.auth0.com/resources/code-samples" class="sc-3ea2115e-5 dUMJXC"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Code Samples</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Experience the features of the Auth0 Identity Platform.</p></a><a rel="external" href="https://developer.auth0.com/resources/guides" class="sc-3ea2115e-5 dUMJXC"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Guides</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Learn how to integrate Auth0 with different frameworks and languages.</p></a><a rel="external" href="https://developer.auth0.com/resources/labs" class="sc-3ea2115e-5 dUMJXC"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Labs</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Follow engaging exercises to learn how to use Auth0 beyond the basics.</p></a><a rel="external" href="https://developer.auth0.com/resources/workshops" class="sc-3ea2115e-5 dUMJXC"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Workshops</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Engaging and interactive sessions to learn about the Auth0 Identity Platform.</p></a><a rel="external" href="https://auth0.com/blog/" class="sc-3ea2115e-5 dUMJXC"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Blog Posts</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Keep up to date with our developer content, created by developers.</p></a><a rel="external" href="https://youtube.com/oktadev" class="sc-3ea2115e-5 dUMJXC"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Videos</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Our YouTube channel dedicated to teach security and identity concepts.</p></a><a rel="external" href="https://developer.auth0.com/resources/templates" class="sc-3ea2115e-5 dUMJXC"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Templates</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Boost your authentication workflows with pre-built solutions.</p></a><a rel="external" href="https://developers.auth0.com/newsletter" class="sc-3ea2115e-5 dUMJXC"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Zero Index Newsletter</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Our monthly digest of relevant and curated developer content.</p></a></div></div><div class="sc-3ea2115e-4 gYXvxG"><p class="sc-3ea2115e-1 eONNrN">Developer tools</p><a rel="external" href="https://jwt.io/" class="sc-3ea2115e-5 sc-3ea2115e-6 dUMJXC jxyqmx"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">JWT Tool</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Decode, verify, and debug JWTs.</p><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="32" height="32" rx="9" fill="black"></rect><path fill-rule="evenodd" clip-rule="evenodd" d="M17.312 11.9591V7.25342H14.688V11.9591L16 13.7609L17.312 11.9591Z" fill="white"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M14.688 20.0409V24.7466H17.312V20.0409L16 18.2391L14.688 20.0409Z" fill="white"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M17.312 20.0409L20.0759 23.8544L22.2101 22.2975L19.4287 18.5015L17.312 17.8018V20.0409Z" fill="#3EC6EB"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M14.688 11.9591L11.9241 8.14563L9.78992 9.70252L12.5713 13.4985L14.688 14.1983V11.9591Z" fill="#3EC6EB"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M12.5713 13.4984L8.09305 12.0465L7.27087 14.548L11.7491 16L13.8833 15.3177L12.5713 13.4984Z" fill="#FF44DD"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M18.1167 16.6822L19.4287 18.5015L23.9069 19.9535L24.7291 17.4519L20.2509 16L18.1167 16.6822Z" fill="#FF44DD"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M20.2509 16L24.7291 14.548L23.9069 12.0465L19.4287 13.4984L18.1167 15.3177L20.2509 16Z" fill="#635DFF"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M11.7491 16L7.27087 17.4519L8.09305 19.9535L12.5713 18.5015L13.8833 16.6822L11.7491 16Z" fill="#635DFF"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M12.5713 18.5015L9.78992 22.2975L11.9241 23.8544L14.688 20.0409V17.8018L12.5713 18.5015Z" fill="#FF4F40"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4287 13.4985L22.2101 9.70252L20.0759 8.14563L17.312 11.9591V14.1983L19.4287 13.4985Z" fill="#FF4F40"></path></svg></a><a rel="external" href="https://webauthn.me" class="sc-3ea2115e-5 sc-3ea2115e-6 dUMJXC jxyqmx"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Webauthn Playground</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Interactive tutorial and WebAuthn config debugger.</p><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="32" height="32" rx="8" fill="black"></rect><path d="M21.2003 10.7793V17.7331H14.2465V10.7793H21.2003ZM24.7262 7.25342H10.7207V21.2589H24.7262V7.25342Z" fill="#FF44DD"></path><path d="M15.9728 24.7465V16.0068H7.23307V24.7465H15.9728Z" fill="#635DFF"></path><path d="M10.33 19.1037L12.7917 21.5937L18.9542 15.5012L16.4926 13.0112L10.33 19.1037Z" fill="#3EC6EB"></path><path d="M11.561 22.0993C10.5941 22.0993 9.81027 21.3155 9.81027 20.3486C9.81027 19.3817 10.5941 18.5979 11.561 18.5979C12.5278 18.5979 13.3116 19.3817 13.3116 20.3486C13.3116 21.3155 12.5278 22.0993 11.561 22.0993Z" fill="black"></path><path d="M17.7234 16.0069C16.7566 16.0069 15.9727 15.2231 15.9727 14.2562C15.9727 13.2893 16.7566 12.5055 17.7234 12.5055C18.6903 12.5055 19.4741 13.2893 19.4741 14.2562C19.4741 15.2231 18.6903 16.0069 17.7234 16.0069Z" fill="white"></path></svg></a><a rel="external" href="https://learnpasskeys.io/" class="sc-3ea2115e-5 sc-3ea2115e-6 dUMJXC jxyqmx"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Passkeys Playground</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Learn how passkeys work using an interactive demo.</p><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_538_22141)"><path d="M24 0H8C3.58172 0 0 3.58172 0 8V24C0 28.4183 3.58172 32 8 32H24C28.4183 32 32 28.4183 32 24V8C32 3.58172 28.4183 0 24 0Z" fill="black"></path><path d="M25.0271 10.737L21.2901 7L16.4098 11.8803L15.9968 12.2933L14.4044 13.8857L13.591 14.6991L7.03516 21.2549L8.62757 22.8473L9.23941 22.2355L11.478 24.4804L13.0713 22.888L10.8291 20.6449L11.441 20.0339L13.6832 22.2807L15.2738 20.6837L13.0316 18.4406L15.1834 16.2933L15.9968 15.4799L17.7871 13.6896L18.201 13.2748L20.3465 15.4203C20.9673 16.0409 21.8093 16.3896 22.6871 16.3895C23.565 16.3894 24.4068 16.0406 25.0275 15.4198C25.6482 14.799 25.9969 13.9571 25.9968 13.0792C25.9967 12.2014 25.6479 11.3595 25.0271 10.7388V10.737ZM23.4663 13.8577C23.255 14.0686 22.9686 14.1871 22.6701 14.1871C22.3715 14.1871 22.0852 14.0686 21.8739 13.8577L19.7455 11.7293L20.4848 10.9901L21.338 10.1369L23.4663 12.2653C23.6772 12.4766 23.7957 12.7629 23.7957 13.0615C23.7957 13.36 23.6772 13.6464 23.4663 13.8577Z" fill="url(#paint0_linear_538_22141)"></path><path d="M11.6499 15.4176L12.711 14.3575L15.3879 11.6805L10.7064 7L6.96941 10.737C6.66207 11.0443 6.41827 11.4092 6.25194 11.8107C6.08561 12.2123 6 12.6427 6 13.0773C6 13.5119 6.08561 13.9423 6.25194 14.3438C6.41827 14.7454 6.66207 15.1102 6.96941 15.4176C7.27673 15.7249 7.64158 15.9687 8.04313 16.135C8.44467 16.3014 8.87505 16.387 9.30968 16.387C9.74431 16.387 10.1747 16.3014 10.5762 16.135C10.9778 15.9687 11.3426 15.7249 11.6499 15.4176ZM8.53019 12.2644L10.6585 10.136L11.8786 11.357L12.2509 11.7284L10.1253 13.8568C9.91335 14.0641 9.62818 14.1794 9.33172 14.1777C9.03525 14.1761 8.75139 14.0576 8.54175 13.8479C8.33211 13.6383 8.21361 13.3544 8.21195 13.058C8.21029 12.7615 8.32562 12.4763 8.5329 12.2644H8.53019Z" fill="url(#paint1_linear_538_22141)"></path><path d="M10.7576 10.039L10.66 9.94141L10.5624 10.039L8.43406 12.1674C8.3081 12.2827 8.2068 12.4224 8.13628 12.578C8.06576 12.7336 8.02748 12.9019 8.02374 13.0726C8.02 13.2434 8.05088 13.4132 8.11452 13.5717C8.17816 13.7302 8.27324 13.8742 8.39402 13.995C8.51481 14.1158 8.65881 14.2109 8.81733 14.2745C8.97585 14.3381 9.14562 14.369 9.3164 14.3653C9.48718 14.3615 9.65543 14.3233 9.81102 14.2527C9.9666 14.1822 10.1063 14.0809 10.2217 13.955L12.35 11.8266L12.4476 11.729L12.35 11.6314L11.6098 10.894L10.7576 10.039ZM10.125 13.8574C9.91301 14.0647 9.62785 14.18 9.33138 14.1783C9.03491 14.1767 8.75105 14.0582 8.54142 13.8485C8.33178 13.6389 8.21327 13.355 8.21161 13.0586C8.20996 12.7621 8.32528 12.4769 8.53257 12.265L10.6609 10.1366L11.515 10.9907L12.2533 11.729L10.125 13.8574Z" fill="url(#paint2_linear_538_22141)"></path><path d="M22.6758 14.3276C22.9254 14.3269 23.1692 14.2524 23.3766 14.1135C23.584 13.9745 23.7456 13.7773 23.8411 13.5467C23.9367 13.3161 23.9619 13.0623 23.9136 12.8174C23.8652 12.5725 23.7456 12.3474 23.5696 12.1704L21.4412 10.042L21.3436 9.94443L21.2442 10.0393L20.0241 11.2594L19.6518 11.6317L19.5542 11.7293L19.6518 11.8269L21.7865 13.9553C21.9028 14.0729 22.0413 14.1663 22.1939 14.2302C22.3466 14.2941 22.5103 14.3272 22.6758 14.3276ZM20.1236 11.357L21.3436 10.1369L23.472 12.2653C23.5765 12.37 23.6594 12.4943 23.716 12.6311C23.7725 12.7679 23.8015 12.9144 23.8014 13.0624C23.8012 13.2104 23.772 13.3569 23.7152 13.4936C23.6585 13.6303 23.5753 13.7545 23.4706 13.859C23.3659 13.9636 23.2416 14.0465 23.1048 14.103C22.968 14.1595 22.8214 14.1886 22.6734 14.1884C22.5255 14.1883 22.3789 14.159 22.2422 14.1023C22.1056 14.0455 21.9814 13.9624 21.8768 13.8577L19.7485 11.7293L20.1236 11.357ZM25.0327 15.4185C24.4118 16.0387 23.5701 16.3871 22.6925 16.3871C21.8148 16.3871 20.9731 16.0387 20.3522 15.4185L18.2067 13.2729L18.1443 13.3353L17.6925 13.7872L13.0363 18.4433L12.9387 18.3457L17.6925 13.592L18.1064 13.1772L18.204 13.0795L18.3025 13.1772L20.4498 15.3218C20.7443 15.6163 21.094 15.8499 21.4788 16.0093C21.8636 16.1687 22.276 16.2507 22.6925 16.2507C23.109 16.2507 23.5214 16.1687 23.9062 16.0093C24.291 15.8499 24.6406 15.6163 24.9351 15.3218C25.2297 15.0272 25.4633 14.6776 25.6227 14.2928C25.7821 13.908 25.8641 13.4956 25.8641 13.0791C25.8641 12.6626 25.7821 12.2502 25.6227 11.8654C25.4633 11.4806 25.2297 11.1309 24.9351 10.8364L21.2957 7.19702L16.5149 11.9779L16.1001 12.3927L13.0273 15.4655L12.9297 15.3679L16.0024 12.2951L16.4173 11.8803L21.2975 7L25.0346 10.737C25.6549 11.3582 26.0031 12.2003 26.0028 13.0781C26.0024 13.956 25.6535 14.7978 25.0327 15.4185Z" fill="url(#paint3_linear_538_22141)"></path><path d="M13.6969 13.1774L11.5523 15.3239C11.2578 15.6184 10.9082 15.852 10.5234 16.0114C10.1386 16.1708 9.72614 16.2528 9.30964 16.2528C8.89314 16.2528 8.48072 16.1708 8.09592 16.0114C7.71112 15.852 7.36149 15.6184 7.06698 15.3239C6.77247 15.0293 6.53885 14.6797 6.37946 14.2949C6.22007 13.9101 6.13803 13.4977 6.13803 13.0812C6.13803 12.6647 6.22007 12.2523 6.37946 11.8675C6.53885 11.4827 6.77247 11.133 7.06698 10.8385L9.07783 8.82768L10.804 7.10151L10.7064 7.00391L6.96937 10.7409C6.66204 11.0483 6.41826 11.4131 6.25193 11.8146C6.08561 12.2162 6 12.6466 6 13.0812C6 13.5158 6.08561 13.9462 6.25193 14.3477C6.41826 14.7493 6.66204 15.1141 6.96937 15.4215C7.2767 15.7288 7.64155 15.9726 8.0431 16.1389C8.44464 16.3052 8.87501 16.3908 9.30964 16.3908C9.74427 16.3908 10.1746 16.3052 10.5762 16.1389C10.9777 15.9726 11.3426 15.7288 11.6499 15.4215L13.536 13.5353L15.3878 11.6844L15.2893 11.5868L13.6969 13.1774Z" fill="url(#paint4_linear_538_22141)"></path><path d="M13.9912 14.3057L7.03516 21.2617L7.13293 21.3595L14.089 14.4034L13.9912 14.3057Z" fill="url(#paint5_linear_538_22141)"></path><path d="M16.6094 16.0894L18.2018 14.4961L24.9628 21.2562L23.3704 22.8486L22.7585 22.2376L20.5154 24.4799L18.923 22.8874L21.1661 20.6452L20.5543 20.0334L18.312 22.2756L16.7196 20.6832L18.9618 18.441L16.6094 16.0894Z" fill="url(#paint6_linear_538_22141)"></path></g><defs><linearGradient id="paint0_linear_538_22141" x1="25.1075" y1="9.25938" x2="13.3036" y2="21.0642" gradientUnits="userSpaceOnUse"><stop offset="0.07" stop-color="#B1E4DE"></stop><stop offset="0.22" stop-color="#4CB7A3"></stop><stop offset="0.4" stop-color="#468DC0"></stop><stop offset="0.65" stop-color="#3F59E4"></stop></linearGradient><linearGradient id="paint1_linear_538_22141" x1="16.5176" y1="5.87031" x2="7.809" y2="14.5789" gradientUnits="userSpaceOnUse"><stop offset="0.07" stop-color="#B1E4DE"></stop><stop offset="0.22" stop-color="#4CB7A3"></stop><stop offset="0.4" stop-color="#468DC0"></stop><stop offset="0.65" stop-color="#3F59E4"></stop></linearGradient><linearGradient id="paint2_linear_538_22141" x1="7.78968" y1="14.5975" x2="9.83849" y2="12.5487" gradientUnits="userSpaceOnUse"><stop offset="0.15" stop-color="#3F59E4"></stop><stop offset="0.54" stop-color="#4CB7A3"></stop><stop offset="1" stop-color="#3F59E4"></stop></linearGradient><linearGradient id="paint3_linear_538_22141" x1="24.6215" y1="9.75102" x2="17.3246" y2="17.0488" gradientUnits="userSpaceOnUse"><stop offset="0.32" stop-color="#B1E4DE"></stop><stop offset="0.72" stop-color="#3F59E4"></stop></linearGradient><linearGradient id="paint4_linear_538_22141" x1="7.21067" y1="15.1784" x2="10.4036" y2="11.9854" gradientUnits="userSpaceOnUse"><stop offset="0.15" stop-color="#3F59E4"></stop><stop offset="0.54" stop-color="#4CB7A3"></stop><stop offset="1" stop-color="#3F59E4"></stop></linearGradient><linearGradient id="paint5_linear_538_22141" x1="6.84038" y1="17.8318" x2="13.3619" y2="17.8318" gradientUnits="userSpaceOnUse"><stop offset="0.15" stop-color="#3F59E4"></stop><stop offset="0.54" stop-color="#4CB7A3"></stop><stop offset="1" stop-color="#3F59E4"></stop></linearGradient><linearGradient id="paint6_linear_538_22141" x1="25.8331" y1="13.6258" x2="17.3414" y2="22.1165" gradientUnits="userSpaceOnUse"><stop offset="0.07" stop-color="#B1E4DE"></stop><stop offset="0.22" stop-color="#4CB7A3"></stop><stop offset="0.4" stop-color="#468DC0"></stop><stop offset="0.65" stop-color="#3F59E4"></stop></linearGradient><clipPath id="clip0_538_22141"><rect width="32" height="32" fill="white"></rect></clipPath></defs></svg></a><a rel="external" href="https://openidconnect.net/" class="sc-3ea2115e-5 sc-3ea2115e-6 dUMJXC jxyqmx"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">OpenID Connect Playground</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Learn how OIDC works in this interactive environment.</p><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="32" height="32" rx="6.36168" fill="black"></rect><g clip-path="url(#clip0_927_8880)"><path d="M12.0837 17.125L11.3993 16.4406C11.0695 16.1134 10.8079 15.7239 10.6296 15.2949C10.4513 14.8658 10.3599 14.4057 10.3607 13.9411C10.3597 13.4765 10.4506 13.0162 10.6283 12.587C10.806 12.1577 11.067 11.7678 11.3961 11.4399C11.724 11.1108 12.1139 10.8498 12.5431 10.6721C12.9724 10.4944 13.4326 10.4035 13.8973 10.4046C14.3613 10.4039 14.8209 10.4951 15.2496 10.6727C15.6783 10.8504 16.0677 11.1112 16.3952 11.4399L17.078 12.1244L19.5569 9.64707L18.8725 8.96263C18.2203 8.30657 17.4445 7.78632 16.59 7.43197C15.7355 7.07762 14.8192 6.8962 13.8941 6.89821C12.969 6.8962 12.0527 7.07762 11.1982 7.43197C10.3436 7.78632 9.56784 8.30657 8.91564 8.96263C8.25943 9.61472 7.73908 10.3905 7.38472 11.245C7.03036 12.0996 6.84903 13.016 6.85122 13.9411C6.84881 14.866 7.03003 15.7822 7.38441 16.6365C7.73879 17.4908 8.25927 18.2663 8.91564 18.9179L9.60008 19.6023L12.0837 17.125Z" fill="#FF4F40"></path><path d="M22.9982 13.0818L22.3138 12.3989L19.8365 14.8762L20.5209 15.5607C20.8505 15.888 21.1117 16.2775 21.2894 16.7065C21.4672 17.1356 21.5579 17.5958 21.5563 18.0602C21.5582 18.5246 21.4679 18.9848 21.2907 19.4141C21.1135 19.8435 20.853 20.2334 20.5241 20.5613C19.8603 21.2232 18.9612 21.5948 18.0238 21.5948C17.0864 21.5948 16.1873 21.2232 15.5234 20.5613L14.839 19.8769L12.3617 22.3542L13.0461 23.0386C13.699 23.6939 14.4749 24.2135 15.3293 24.5678C16.1836 24.9221 17.0996 25.104 18.0246 25.1031C18.9492 25.1039 19.865 24.9219 20.7191 24.5677C21.5732 24.2134 22.3488 23.6937 23.0014 23.0386C23.658 22.3868 24.1786 21.6111 24.5329 20.7565C24.8873 19.9019 25.0685 18.9854 25.0658 18.0602C25.068 17.1348 24.8864 16.2182 24.5315 15.3636C24.1765 14.5089 23.6554 13.7333 22.9982 13.0818Z" fill="#3EC6EB"></path><path d="M17.0865 12.1228L12.0885 17.1208L14.8407 19.8731L19.8387 14.8751L17.0865 12.1228Z" fill="white"></path></g><defs><clipPath id="clip0_927_8880"><rect width="18.2003" height="18.1971" fill="white" transform="translate(6.86084 6.90137)"></rect></clipPath></defs></svg></a><a rel="external" href="https://samltool.io/" class="sc-3ea2115e-5 sc-3ea2115e-6 dUMJXC jxyqmx"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">SAML Tool</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Decode, inspect, and verify SAML messages.</p><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="32" height="32" rx="8" fill="black"></rect><path d="M12.8233 7.25342C9.73917 7.25342 7.23889 9.75363 7.23889 12.8378C7.23889 15.9219 9.7391 18.4222 12.8233 18.4222L19.136 18.4222C19.5383 18.4222 19.8644 18.7483 19.8644 19.1505C19.8644 19.5528 19.5382 19.8789 19.136 19.8789H16.0404V20.8501H19.136C20.0747 20.8501 20.8356 20.0892 20.8356 19.1505C20.8356 18.2119 20.0747 17.451 19.136 17.451L12.8233 17.451C10.2755 17.451 8.21009 15.3856 8.21009 12.8378C8.21009 10.29 10.2755 8.22461 12.8233 8.22461H16.0484V7.25342L12.8233 7.25342Z" fill="url(#paint0_linear_804_8024)"></path><path d="M12.8233 9.19581C10.8119 9.19581 9.18128 10.8264 9.18128 12.8378C9.18128 14.8492 10.8118 16.4798 12.8233 16.4798H19.136C20.6111 16.4798 21.8068 17.6755 21.8068 19.1505C21.8068 20.6256 20.611 21.8213 19.136 21.8213H16.0404V22.7925H19.136C21.1474 22.7925 22.778 21.162 22.778 19.1505C22.778 17.1391 21.1474 15.5086 19.136 15.5086H12.8233C11.3483 15.5086 10.1525 14.3128 10.1525 12.8378C10.1525 11.3628 11.3482 10.167 12.8233 10.167H16.0484V9.19581H12.8233Z" fill="url(#paint1_linear_804_8024)"></path><path d="M11.1237 12.8378C11.1237 11.8991 11.8846 11.1382 12.8233 11.1382H16.0484V12.1094H12.8233C12.421 12.1094 12.0949 12.4355 12.0949 12.8378C12.0949 13.2401 12.421 13.5662 12.8233 13.5662H19.136C22.2201 13.5662 24.7204 16.0664 24.7204 19.1505C24.7204 22.2347 22.2202 24.7349 19.136 24.7349H16.0404V23.7637H19.136C21.6837 23.7637 23.7492 21.6983 23.7492 19.1505C23.7492 16.6028 21.6838 14.5374 19.136 14.5374L12.8233 14.5374C11.8846 14.5374 11.1237 13.7764 11.1237 12.8378Z" fill="url(#paint2_linear_804_8024)"></path><defs><linearGradient id="paint0_linear_804_8024" x1="7.23889" y1="7.25342" x2="24.7204" y2="24.7349" gradientUnits="userSpaceOnUse"><stop offset="0.328125" stop-color="#FF4F40"></stop><stop offset="0.697917" stop-color="#FF44DD"></stop></linearGradient><linearGradient id="paint1_linear_804_8024" x1="7.23889" y1="7.25342" x2="24.7204" y2="24.7349" gradientUnits="userSpaceOnUse"><stop offset="0.328125" stop-color="#FF4F40"></stop><stop offset="0.697917" stop-color="#FF44DD"></stop></linearGradient><linearGradient id="paint2_linear_804_8024" x1="7.23889" y1="7.25342" x2="24.7204" y2="24.7349" gradientUnits="userSpaceOnUse"><stop offset="0.328125" stop-color="#FF4F40"></stop><stop offset="0.697917" stop-color="#FF44DD"></stop></linearGradient></defs></svg></a></div></section></div></li><li role="menuitem" aria-haspopup="true" tabindex="0" class="sc-905af812-2 cgiEAc"><div class="sc-905af812-1 gFhGko"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 gEFelT kHaByn">Community<!-- --> <svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1.5L4 4.5L7 1.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></p></div><div class="sc-905af812-0 ikYBUn"><section class="sc-88e0a412-0 TUmhq"><div class="sc-88e0a412-2 cWPhTL"><p class="sc-88e0a412-1 fKFJuD">Community</p><div class="sc-88e0a412-3 kbdSIb"><a rel="external" href="https://community.auth0.com/" class="sc-88e0a412-5 hzA-dVG"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Forum</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Ask questions, share ideas, and get to know other Auth0 developers.</p></a><a rel="external" href="https://developers.auth0.com/events" class="sc-88e0a412-5 hzA-dVG"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Events</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Come join the Auth0 team at our virtual events or an event near you.</p></a><a rel="external" href="https://auth0.com/ambassador-program" class="sc-88e0a412-5 hzA-dVG"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Ambassador Program</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Meet a global team of developers who share their Auth0 knowledge.</p></a><a rel="external" href="https://support.auth0.com/" class="sc-88e0a412-5 hzA-dVG"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Support</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Having Trouble? We are here to help you.</p></a><a rel="external" href="https://auth0.com/apollo-program" class="sc-88e0a412-5 hzA-dVG"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Auth0 Apollo Program</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Join amazing developers who have written for the Auth0 Blog.</p></a><a rel="external" href="https://auth0.com/research-program" class="sc-88e0a412-5 hzA-dVG"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Auth0 Research Program</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Give feedback towards our product improvements and get rewarded for your participation.</p></a></div></div><div class="sc-88e0a412-4 jeoMSA"><p class="sc-88e0a412-1 fKFJuD">Featured Event</p><a rel="external" href="https://a0.to/watch-best-of-devday24" class="sc-88e0a412-5 sc-88e0a412-6 hzA-dVG kdioiD"><div class="sc-88e0a412-7 SmnLB"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27256%27%20height=%27144%27/%3e"/></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" srcSet="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=256&amp;q=75 1x, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=640&amp;q=75 2x" src="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=640&amp;q=75" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></div><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw lkxjzQ">Best of DevDay</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">This webinar will give you the TL;DR on the most exciting announcements shared at dev_day(24) and Oktane, spotlighting the trending identity topics discussed this year.</p></a></div></section></div></li><li role="menuitem" aria-haspopup="true" tabindex="0" class="sc-905af812-2 cgiEAc"><div class="sc-905af812-1 gFhGko"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 gEFelT kHaByn">Get Started<!-- --> <svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1.5L4 4.5L7 1.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></p></div><div class="sc-905af812-0 ikYBUn"><section class="sc-1c1cb22e-0 cGozyj"><p class="sc-1c1cb22e-1 hxHzXv">Get Started</p><div class="sc-1c1cb22e-2 joQPTn"><a href="https://developer.auth0.com/resources/get-started/mobile" target="_blank" class="sc-1c1cb22e-3 ZtyfS"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="32" height="32" rx="8" fill="url(#pattern0_m)"></rect><defs><pattern id="pattern0_m" patternContentUnits="objectBoundingBox" width="1" height="1"><use xlink:href="#image0_1933_12034" transform="scale(0.01)"></use></pattern><image id="image0_1933_12034" width="100" height="100" xlink:href="data:image/png;base64,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"></image></defs></svg><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw IsPZI">Native/Mobile App</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw dRFjEF">Mobile or Desktop app that runs natively on a device</p></a><a href="https://developer.auth0.com/resources/get-started/spa" target="_blank" class="sc-1c1cb22e-3 ZtyfS"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="32" height="32" rx="8" fill="url(#pattern0_s)"></rect><defs><pattern id="pattern0_s" patternContentUnits="objectBoundingBox" width="1" height="1"><use xlink:href="#image0_1933_12046" transform="scale(0.01)"></use></pattern><image id="image0_1933_12046" width="100" height="100" xlink:href="data:image/png;base64,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"></image></defs></svg><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw IsPZI">Single-Page App</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw dRFjEF">JavaScript web app that runs in the browser</p></a><a href="https://developer.auth0.com/resources/get-started/web-app" target="_blank" class="sc-1c1cb22e-3 ZtyfS"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="32" height="32" rx="8" fill="url(#pattern0_w)"></rect><defs><pattern id="pattern0_w" patternContentUnits="objectBoundingBox" width="1" height="1"><use xlink:href="#image0_1933_12051" transform="scale(0.01)"></use></pattern><image id="image0_1933_12051" width="100" height="100" xlink:href="data:image/png;base64,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"></image></defs></svg><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw IsPZI">Regular Web App</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw dRFjEF">Traditional web app that runs on the server</p></a><a href="https://developer.auth0.com/resources/get-started/api" target="_blank" class="sc-1c1cb22e-3 ZtyfS"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect width="32" height="32" rx="8" fill="url(#pattern0_b)"></rect><defs><pattern id="pattern0_b" patternContentUnits="objectBoundingBox" width="1" height="1"><use xlink:href="#image0_1933_12041_b" transform="scale(0.01)"></use></pattern><image id="image0_1933_12041_b" width="100" height="100" xlink:href="data:image/png;base64,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"></image></defs></svg><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw IsPZI">Backend/API</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw dRFjEF">An API or service protected by Auth0</p></a><a href="https://developer.auth0.com/resources/get-started/cloud" target="_blank" class="sc-1c1cb22e-3 ZtyfS"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H8C3.58172 0 0 3.58172 0 8V24C0 28.4183 3.58172 32 8 32H24C28.4183 32 32 28.4183 32 24V8C32 3.58172 28.4183 0 24 0Z" fill="url(#paint0_linear_1_30)"></path><path d="M22 14H20.74C20.3659 12.551 19.5928 11.236 18.5086 10.2044C17.4245 9.1728 16.0727 8.46599 14.6069 8.16428C13.1411 7.86256 11.6201 7.97804 10.2166 8.49759C8.8132 9.01714 7.58363 9.91994 6.66764 11.1034C5.75165 12.2868 5.18598 13.7035 5.0349 15.1924C4.88381 16.6812 5.15338 18.1826 5.81296 19.526C6.47255 20.8693 7.4957 22.0007 8.76617 22.7916C10.0366 23.5824 11.5035 24.0011 13 24H22C23.3261 24 24.5978 23.4732 25.5355 22.5355C26.4732 21.5979 27 20.3261 27 19C27 17.6739 26.4732 16.4021 25.5355 15.4645C24.5978 14.5268 23.3261 14 22 14V14Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><defs><linearGradient id="paint0_linear_1_30" x1="0" y1="16" x2="32" y2="16" gradientUnits="userSpaceOnUse"><stop stop-color="#3EC6EB"></stop><stop offset="1" stop-color="#3885FF"></stop></linearGradient></defs></svg><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw IsPZI">Cloud App</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw dRFjEF">An application hosted in the cloud (e.g. Vercel, Netlify)</p></a></div></section></div></li><div role="menuitem" class="sc-905af812-6 hgFYIN"><a tabindex="0" href="https://auth0.com/api/auth/login?redirectTo=dashboard" role="button" class="styled__Button-sc-1hwml9q-0 utils-sc-11hlfw-0 iaAYJi kHaByn"><span>Log in</span></a><a tabindex="0" href="https://auth0.com/signup?promo=devonly-web&amp;place=topbar-dev-center&amp;origin=auth0-dev-center" role="button" class="styled__Button-sc-1hwml9q-0 utils-sc-11hlfw-0 hytZJl kHaByn"><span>Sign up</span></a></div></ul></nav></header><main><section class="sc-121c725a-0 ekjMyu"><div class="sc-121c725a-1 fDjzHK"><div class="sc-121c725a-3 fxqHnu"><h1 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 egKny kHaByn">Developer Center</h1><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 dfDtUI kHaByn">Learn about Auth0, explore tutorials, download code samples, connect with us, find resources, and more.</p></div><div class="sc-121c725a-4 dGjDCy"><section class="sc-fcaee53a-0 fOTDYz"><div class="sc-fcaee53a-1 kLcviG"><div class="sc-fcaee53a-2 flMxQE"><a href="https://a0.to/watch-best-of-devday24" target="_blank" class="sc-121c725a-7 kbKgiA"><div class="sc-121c725a-5 QZbze"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="DevDay logo with a dark background that has beaming lights circling around, evoking feeling underwater or looking at the aurora borealis" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-day-banner.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/></span></div><div class="sc-121c725a-6 jRAbRU"><h2 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 gZYPyt ecntYo">Best of DevDay</h2><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU ecntYo">This webinar will give you the TL;DR on the most exciting announcements shared at dev_day(24) and Oktane, spotlighting the trending identity topics discussed this year.</p><p href="https://a0.to/watch-best-of-devday24" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx flDGfr">Watch now</p></div></a><a href="https://auth0.com/blog/webauthn-and-passkeys-for-developers" target="_blank" class="sc-121c725a-7 kbKgiA"><div class="sc-121c725a-5 QZbze"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Castle representing a fortress protected by passkeys" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelopers%2Fhome%2Fpasskeys-castle.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/></span></div><div class="sc-121c725a-6 jRAbRU"><h2 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 gZYPyt ecntYo">A Passwordless Future: Passkeys for Developers</h2><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU ecntYo">Passkeys and WebAuthn for developers. Learn how passkeys work and the benefits they provide.</p><p href="https://auth0.com/blog/webauthn-and-passkeys-for-developers" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx flDGfr">Learn more</p></div></a><a href="https://www.youtube.com/watch?v=gmUYJ2Uy6hs" target="_blank" class="sc-121c725a-7 kbKgiA"><div class="sc-121c725a-5 QZbze"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Flowery stack of translucent cards fanning upwards" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fdev-keynote-banner.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/></span></div><div class="sc-121c725a-6 jRAbRU"><h2 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 gZYPyt ecntYo">Let&#x27;s Build Beyond the Login Box</h2><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU ecntYo">Join us on an exploration beyond the traditional confines of the login box where you’ll understand how to leverage Auth0. We cover the basics of authentication, how passwords are a thing of the past, and the introduce of passkeys, a leading-edge passwordless solution.</p><p href="https://www.youtube.com/watch?v=gmUYJ2Uy6hs" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx flDGfr">Learn more</p></div></a><a href="https://identityunlocked.auth0.com/public/49/Identity%2C-Unlocked.--bed7fada/61103d3d" target="_blank" class="sc-121c725a-7 kbKgiA"><div class="sc-121c725a-5 QZbze"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Identity Unlocked" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2CmCe8F3TaENjJJz6TpOdq%2Ff40633605c5ac131e9cdae3a1f2e3ed9%2FIdentity-Unlocked.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/></span></div><div class="sc-121c725a-6 jRAbRU"><h2 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 gZYPyt ecntYo">Identity, Unlocked: Season 04 - Episode 02</h2><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU ecntYo">Windows CardSpace with Stuart Kwan: Learn how CardSpace ignited the user centric identity revolution and how it influenced so much of what we do today, despite failing to be adopted.</p><p href="https://identityunlocked.auth0.com/public/49/Identity%2C-Unlocked.--bed7fada/61103d3d" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx flDGfr">Listen here</p></div></a></div></div><div class="sc-fcaee53a-3 fxqFAI arrows-container"><button aria-label="Previous slide" class="sc-fcaee53a-4 hPEmZI"><svg width="52" height="14" viewBox="0 0 52 14" fill="none" xmlns="http://www.w3.org/2000/svg"><line y1="6.78659" x2="50" y2="6.78659" stroke="white" stroke-width="1.5"></line><path d="M44 1L50 6.85366L44 12.7073" stroke="white" stroke-width="1.5"></path></svg></button><button aria-label="Next slide" class="sc-fcaee53a-4 cedQTI"><svg width="52" height="14" viewBox="0 0 52 14" fill="none" xmlns="http://www.w3.org/2000/svg"><line y1="6.78659" x2="50" y2="6.78659" stroke="white" stroke-width="1.5"></line><path d="M44 1L50 6.85366L44 12.7073" stroke="white" stroke-width="1.5"></path></svg></button></div></section></div></div><div class="sc-121c725a-8 hKxBPh"></div></section><section class="sc-b8162a38-0 ijKTfq"><div class="sc-b8162a38-1 fxngjf"><div class="sc-b8162a38-2 btVUGR"><h2 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 csFzCj kHaByn">Learn Auth0 essentials</h2><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob kHaByn">Explore the basics of identity and the Auth0 platform.</p></div><ul class="sc-b8162a38-3 kCsPJu"><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/docs/get-started/auth0-overview" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Auth0 overview</a></li><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/docs/get-started/identity-fundamentals" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Identity fundamentals</a></li><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/docs/quickstarts" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Auth0 Quickstarts</a></li><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/resources/whitepapers/build-vs-buy-evaluating-identity-management" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Evaluate Identity Management</a></li></ul></div><div class="sc-b8162a38-1 fxngjf"><div class="sc-b8162a38-2 TSXYk"><h2 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 csFzCj kHaByn">Discover Auth0 features</h2><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob kHaByn">Implement Auth0 authentication and secure your applications.</p></div><ul class="sc-b8162a38-3 kCsPJu"><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/docs/authenticate" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Integrate Auth0 login</a></li><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/docs/customize" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Customize your user experience</a></li><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/docs/secure" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Protect your application</a></li><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://developer.auth0.com/resources" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Auth0 code samples &amp; guides</a></li></ul></div><div class="sc-b8162a38-1 fxngjf"><div class="sc-b8162a38-2 iGnFee"><h2 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 csFzCj kHaByn">Level up your Auth0 deployment</h2><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob kHaByn">Manage your environment with a range of advanced tools and features.</p></div><ul class="sc-b8162a38-3 kCsPJu"><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/docs/deploy-monitor/deployment-options" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Deploy to private &amp; public cloud</a></li><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/docs/deploy-monitor/deploy-cli-tool" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">CLI Deployment Tool</a></li><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/docs/deploy-monitor/monitor" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Monitor your implementation</a></li><li class="sc-b8162a38-4 ebewTY"><a target="_blank" href="https://auth0.com/docs/troubleshoot" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx hJycHX">Troubleshoot</a></li></ul></div></section><section class="sc-f9dfa3ea-0 gGAiza"><h2 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 klHTjZ kHaByn">Connect with Auth0</h2><div class="sc-f9dfa3ea-1 eGwuxU"><div class="sc-f9dfa3ea-2 gEeuHo"><p class="sc-f9dfa3ea-3 bnUqgf">Upcoming Events</p><div class="sc-f9dfa3ea-4 gLCuOw"><a href="https://a0.to/watch-best-of-devday24" target="_blank" rel="noopener noreferrer" class="sc-f9dfa3ea-5 iBzEeN"><figure class="sc-f9dfa3ea-6 koWBcB"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fcdn.auth0.com%2Fwebsite%2Fdevelope-center%2Fassets%2Fboo-banner.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 dWaerX iObThW">Best of DevDay</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU hQtlNv">Watch the webinar online</p></a><div class="sc-f9dfa3ea-7 jEpvEg"></div></div><div class="sc-f9dfa3ea-9 gWjBQP"><a href="/events" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 bHviJx kHaByn">View more events</a></div></div><div class="sc-f9dfa3ea-10 cKEaNu"><p class="sc-f9dfa3ea-3 huFLxD">Meet Our Auth0 Advocates</p><a href="https://auth0.com/blog/authors/carla-stabile/" target="_blank" class="sc-f9dfa3ea-11 ecIzqb"><figure class="sc-f9dfa3ea-12 hmsrIR"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6oI6DnEu4CJzuVTSALAOAt%2Fe03a3bab4b7630cb586241beffac84b8%2Fcarla_urrea.jpg&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6oI6DnEu4CJzuVTSALAOAt%2Fe03a3bab4b7630cb586241beffac84b8%2Fcarla_urrea.jpg&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6oI6DnEu4CJzuVTSALAOAt%2Fe03a3bab4b7630cb586241beffac84b8%2Fcarla_urrea.jpg&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6oI6DnEu4CJzuVTSALAOAt%2Fe03a3bab4b7630cb586241beffac84b8%2Fcarla_urrea.jpg&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6oI6DnEu4CJzuVTSALAOAt%2Fe03a3bab4b7630cb586241beffac84b8%2Fcarla_urrea.jpg&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6oI6DnEu4CJzuVTSALAOAt%2Fe03a3bab4b7630cb586241beffac84b8%2Fcarla_urrea.jpg&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6oI6DnEu4CJzuVTSALAOAt%2Fe03a3bab4b7630cb586241beffac84b8%2Fcarla_urrea.jpg&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6oI6DnEu4CJzuVTSALAOAt%2Fe03a3bab4b7630cb586241beffac84b8%2Fcarla_urrea.jpg&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6oI6DnEu4CJzuVTSALAOAt%2Fe03a3bab4b7630cb586241beffac84b8%2Fcarla_urrea.jpg&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU kfRWXJ">Carla Urrea</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Senior Developer Advocate</p></a><a href="https://auth0.com/blog/authors/ramona-schwering/" target="_blank" class="sc-f9dfa3ea-11 ecIzqb"><figure class="sc-f9dfa3ea-12 hmsrIR"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F7IT4Y2ttSmqj92hrr9ilPP%2F4f6b542e60b310eaccd0a288c5a39807%2FRamona-Schwering_square.jpeg&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F7IT4Y2ttSmqj92hrr9ilPP%2F4f6b542e60b310eaccd0a288c5a39807%2FRamona-Schwering_square.jpeg&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F7IT4Y2ttSmqj92hrr9ilPP%2F4f6b542e60b310eaccd0a288c5a39807%2FRamona-Schwering_square.jpeg&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F7IT4Y2ttSmqj92hrr9ilPP%2F4f6b542e60b310eaccd0a288c5a39807%2FRamona-Schwering_square.jpeg&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F7IT4Y2ttSmqj92hrr9ilPP%2F4f6b542e60b310eaccd0a288c5a39807%2FRamona-Schwering_square.jpeg&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F7IT4Y2ttSmqj92hrr9ilPP%2F4f6b542e60b310eaccd0a288c5a39807%2FRamona-Schwering_square.jpeg&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F7IT4Y2ttSmqj92hrr9ilPP%2F4f6b542e60b310eaccd0a288c5a39807%2FRamona-Schwering_square.jpeg&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F7IT4Y2ttSmqj92hrr9ilPP%2F4f6b542e60b310eaccd0a288c5a39807%2FRamona-Schwering_square.jpeg&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F7IT4Y2ttSmqj92hrr9ilPP%2F4f6b542e60b310eaccd0a288c5a39807%2FRamona-Schwering_square.jpeg&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU kfRWXJ">Ramona Schwering</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Developer Advocate, International</p></a><a href="https://auth0.com/blog/authors/deepu-sasidharan/" target="_blank" class="sc-f9dfa3ea-11 ecIzqb"><figure class="sc-f9dfa3ea-12 hmsrIR"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F1fApVZwDd5MqC86klNgqxA%2F8723248ab3b90d30b32f55cc7287f87c%2Fdeepu-sasidharan.jpg&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F1fApVZwDd5MqC86klNgqxA%2F8723248ab3b90d30b32f55cc7287f87c%2Fdeepu-sasidharan.jpg&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F1fApVZwDd5MqC86klNgqxA%2F8723248ab3b90d30b32f55cc7287f87c%2Fdeepu-sasidharan.jpg&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F1fApVZwDd5MqC86klNgqxA%2F8723248ab3b90d30b32f55cc7287f87c%2Fdeepu-sasidharan.jpg&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F1fApVZwDd5MqC86klNgqxA%2F8723248ab3b90d30b32f55cc7287f87c%2Fdeepu-sasidharan.jpg&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F1fApVZwDd5MqC86klNgqxA%2F8723248ab3b90d30b32f55cc7287f87c%2Fdeepu-sasidharan.jpg&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F1fApVZwDd5MqC86klNgqxA%2F8723248ab3b90d30b32f55cc7287f87c%2Fdeepu-sasidharan.jpg&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F1fApVZwDd5MqC86klNgqxA%2F8723248ab3b90d30b32f55cc7287f87c%2Fdeepu-sasidharan.jpg&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F1fApVZwDd5MqC86klNgqxA%2F8723248ab3b90d30b32f55cc7287f87c%2Fdeepu-sasidharan.jpg&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU kfRWXJ">Deepu K Sasidharan</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Staff Developer Advocate</p></a><a href="https://auth0.com/blog/authors/sam-bellen/" target="_blank" class="sc-f9dfa3ea-11 ecIzqb"><figure class="sc-f9dfa3ea-12 hmsrIR"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6Af0cGSUWXf5YZLy70HlM1%2F8010aa3cdd505dde85d341c60c8a5a2c%2F4de9043f60168c1eb2be2b751ec79373_s_160&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6Af0cGSUWXf5YZLy70HlM1%2F8010aa3cdd505dde85d341c60c8a5a2c%2F4de9043f60168c1eb2be2b751ec79373_s_160&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6Af0cGSUWXf5YZLy70HlM1%2F8010aa3cdd505dde85d341c60c8a5a2c%2F4de9043f60168c1eb2be2b751ec79373_s_160&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6Af0cGSUWXf5YZLy70HlM1%2F8010aa3cdd505dde85d341c60c8a5a2c%2F4de9043f60168c1eb2be2b751ec79373_s_160&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6Af0cGSUWXf5YZLy70HlM1%2F8010aa3cdd505dde85d341c60c8a5a2c%2F4de9043f60168c1eb2be2b751ec79373_s_160&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6Af0cGSUWXf5YZLy70HlM1%2F8010aa3cdd505dde85d341c60c8a5a2c%2F4de9043f60168c1eb2be2b751ec79373_s_160&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6Af0cGSUWXf5YZLy70HlM1%2F8010aa3cdd505dde85d341c60c8a5a2c%2F4de9043f60168c1eb2be2b751ec79373_s_160&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6Af0cGSUWXf5YZLy70HlM1%2F8010aa3cdd505dde85d341c60c8a5a2c%2F4de9043f60168c1eb2be2b751ec79373_s_160&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F6Af0cGSUWXf5YZLy70HlM1%2F8010aa3cdd505dde85d341c60c8a5a2c%2F4de9043f60168c1eb2be2b751ec79373_s_160&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU kfRWXJ">Sam Bellen</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Principal Developer Advocate</p></a><a href="https://auth0.com/blog/authors/daizen-ikehara/" target="_blank" class="sc-f9dfa3ea-11 ecIzqb"><figure class="sc-f9dfa3ea-12 hmsrIR"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2FnBO8tcaYqYXbo4adskgqh%2F20ef997e8f93444da8e6e0b261b86874%2FDaizen_Ikehara.jpg&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2FnBO8tcaYqYXbo4adskgqh%2F20ef997e8f93444da8e6e0b261b86874%2FDaizen_Ikehara.jpg&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2FnBO8tcaYqYXbo4adskgqh%2F20ef997e8f93444da8e6e0b261b86874%2FDaizen_Ikehara.jpg&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2FnBO8tcaYqYXbo4adskgqh%2F20ef997e8f93444da8e6e0b261b86874%2FDaizen_Ikehara.jpg&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2FnBO8tcaYqYXbo4adskgqh%2F20ef997e8f93444da8e6e0b261b86874%2FDaizen_Ikehara.jpg&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2FnBO8tcaYqYXbo4adskgqh%2F20ef997e8f93444da8e6e0b261b86874%2FDaizen_Ikehara.jpg&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2FnBO8tcaYqYXbo4adskgqh%2F20ef997e8f93444da8e6e0b261b86874%2FDaizen_Ikehara.jpg&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2FnBO8tcaYqYXbo4adskgqh%2F20ef997e8f93444da8e6e0b261b86874%2FDaizen_Ikehara.jpg&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2FnBO8tcaYqYXbo4adskgqh%2F20ef997e8f93444da8e6e0b261b86874%2FDaizen_Ikehara.jpg&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU kfRWXJ">Daizen Ikehara</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw kHaByn">Principal Developer Advocate</p></a></div></div><div class="sc-f9dfa3ea-16 BqetJ"><p class="sc-f9dfa3ea-17 fZTLHY">Join the Community</p><ul class="sc-f9dfa3ea-18 crhWjz"><li class="sc-f9dfa3ea-19 gmUqxI"><a href="https://community.auth0.com/" target="_blank" class="sc-f9dfa3ea-20 iNRGUi"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%2740%27%20height=%2740%27/%3e"/></span><img alt="" aria-hidden="true" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" aria-hidden="true" srcSet="https://images.ctfassets.net/kbkgmx9upatd/6Z3jYghKHv8N27w1taHpQ4/1d7b03cc4f93adc534b8b3e2e898d3e7/icon-community.svg 1x, https://images.ctfassets.net/kbkgmx9upatd/6Z3jYghKHv8N27w1taHpQ4/1d7b03cc4f93adc534b8b3e2e898d3e7/icon-community.svg 2x" src="https://images.ctfassets.net/kbkgmx9upatd/6Z3jYghKHv8N27w1taHpQ4/1d7b03cc4f93adc534b8b3e2e898d3e7/icon-community.svg" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU cWWcHU">Community Forum</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU jqbMqC">Interact with other devs implementing innovative solutions with Auth0.</p></a></li><li class="sc-f9dfa3ea-19 gmUqxI"><a href="https://discord.gg/dtemEDa9m6" target="_blank" class="sc-f9dfa3ea-20 iNRGUi"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%2740%27%20height=%2740%27/%3e"/></span><img alt="" aria-hidden="true" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" aria-hidden="true" srcSet="https://images.ctfassets.net/kbkgmx9upatd/2VwIpNkteOe2poyy0DEQs0/7fd5544af42ca85235b8d99a51ff59be/icon-discord.svg 1x, https://images.ctfassets.net/kbkgmx9upatd/2VwIpNkteOe2poyy0DEQs0/7fd5544af42ca85235b8d99a51ff59be/icon-discord.svg 2x" src="https://images.ctfassets.net/kbkgmx9upatd/2VwIpNkteOe2poyy0DEQs0/7fd5544af42ca85235b8d99a51ff59be/icon-discord.svg" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU cWWcHU">Join Auth0 Lab Discord</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU jqbMqC">Join our Discord community to learn more, share your thoughts and stay up to date on all the things related to Auth0.</p></a></li><li class="sc-f9dfa3ea-19 gmUqxI"><a href="/newsletter" target="_blank" class="sc-f9dfa3ea-20 iNRGUi"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%2740%27%20height=%2740%27/%3e"/></span><img alt="" aria-hidden="true" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" aria-hidden="true" srcSet="https://images.ctfassets.net/kbkgmx9upatd/43gWV7niqMUrTyjbTdCRyS/cff354bfd65a7c1c0423976caa4b6de4/icon-newsletter.svg 1x, https://images.ctfassets.net/kbkgmx9upatd/43gWV7niqMUrTyjbTdCRyS/cff354bfd65a7c1c0423976caa4b6de4/icon-newsletter.svg 2x" src="https://images.ctfassets.net/kbkgmx9upatd/43gWV7niqMUrTyjbTdCRyS/cff354bfd65a7c1c0423976caa4b6de4/icon-newsletter.svg" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU cWWcHU">Zero Index Newsletter</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU jqbMqC">Get curated links to articles, videos, and developer productivity tips delivered to your inbox once a month.</p></a></li></ul></div></section><section class="sc-26497cf7-0 dFcbxw"><div class="sc-26497cf7-14 fKhkQL"></div><div class="sc-26497cf7-1 jguXeA"><div class="sc-26497cf7-2 kFHZcJ"><h2 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 klHTjZ MVvWs">Developer Productivity</h2><div class="sc-26497cf7-3 iTyrOZ"><div class="sc-26497cf7-4 cYUAWC"><p class="sc-26497cf7-6 gVrotW">Developer tools</p><div class="sc-26497cf7-7 hjjGrC"><a href="https://jwt.io/" rel="external" target="_blank" class="sc-26497cf7-9 guSDKl"><img src="https://images.ctfassets.net/kbkgmx9upatd/4P31R4XSNJeJ4tZ83lz8De/52646413140ec28ed195265cb898d761/devprod-jwt.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob gKfJeG">JWT Tool</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob hQtlNv">Decode, verify, and debug JWTs.</p></a><a href="https://webauthn.me" rel="external" target="_blank" class="sc-26497cf7-9 guSDKl"><img src="https://images.ctfassets.net/kbkgmx9upatd/7kDdDSwNCmOMbB4LRNjJLq/f43b36537ac7a73e35cf604c5014f202/devprod-WebAuthn.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob gKfJeG">Webauthn Playground</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob hQtlNv">Interactive tutorial and WebAuthn config debugger.</p></a><a href="https://learnpasskeys.io" rel="external" target="_blank" class="sc-26497cf7-9 guSDKl"><img src="https://cdn.auth0.com/website/developers/home/devprod-passkeys-playground.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob gKfJeG">Passkeys Playground</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob hQtlNv">Learn how passkeys work using an interactive demo.</p></a><a href="https://openidconnect.net/" rel="external" target="_blank" class="sc-26497cf7-9 guSDKl"><img src="https://images.ctfassets.net/kbkgmx9upatd/1Afi7BqT92QsVFFdGqY2Fh/34a716b0c67eb5fee0a0d0f9ea0db745/devprod-openid.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob gKfJeG">OpenID Connect Playground</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob hQtlNv">Learn how OpenID Connect works in this interactive environment.</p></a><a href="http://samltool.io/" rel="external" target="_blank" class="sc-26497cf7-9 guSDKl"><img src="https://images.ctfassets.net/kbkgmx9upatd/4ubKNyipNJhBYVQREsetvs/90079fdf31eb59dcb9dd15c341e119dc/devprod-SAML.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob gKfJeG">SAML Tool</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob hQtlNv">Decode, inspect, and verify SAML messages.</p></a><a href="https://auth0.com/docs/libraries" rel="external" target="_blank" class="sc-26497cf7-9 guSDKl"><img src="https://images.ctfassets.net/kbkgmx9upatd/4VihzrJdsRxITIWUL2Qf5h/3602a7a484fac08d07c596a9ca8d7d61/devprod-sdk.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob gKfJeG">SDK Libraries</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob hQtlNv">Integrate Auth0 with your preferred language</p></a><a href="https://auth0.com/docs/deploy-monitor/deploy-cli-tool" rel="external" target="_blank" class="sc-26497cf7-9 guSDKl"><img src="https://images.ctfassets.net/kbkgmx9upatd/4nc9V7rNYXzWwVyZOJpLRw/7c7badfaac43526cdffee4f389a22516/devprod-deploycli.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob gKfJeG">Auth0 Deploy CLI</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob hQtlNv">Configure Auth0 from the terminal</p></a><a href="https://auth0.com/docs/api" rel="external" target="_blank" class="sc-26497cf7-9 guSDKl"><img src="https://images.ctfassets.net/kbkgmx9upatd/44ge2iGORIfSvNA3uAi2bC/ca95f316870e2d5f9c0ae5fdc3be0383/devprod-a0api.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob gKfJeG">Auth0 API</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob hQtlNv">Check the APIs for developers to consume in their applications.</p></a><a href="https://status.auth0.com/" rel="external" target="_blank" class="sc-26497cf7-9 guSDKl"><img src="https://images.ctfassets.net/kbkgmx9upatd/2gw6djXAXaFxeC2znaTvnb/a55f1c12abca5a17f767ca975dbfc075/devprod-status.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob gKfJeG">Auth0 Status Page</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob hQtlNv">Check the status of Auth0 services</p></a></div></div><div class="sc-26497cf7-5 huXCRk"><p class="sc-26497cf7-6 hDVpcD">Integrations</p><a href="https://marketplace.auth0.com" rel="external" target="_blank" class="sc-26497cf7-9 iiWQyp"><img src="https://images.ctfassets.net/kbkgmx9upatd/fQLpQe94UfgIRoE2wCR2t/80c2c329d3c7fcd78652997d062d85af/devprod-marketplace.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob cecPQS">Marketplace</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob cvTglX">Discover and enable the integrations you need to solve identity</p></a><a href="https://developer.auth0.com/resources/code-samples" rel="external" target="_blank" class="sc-26497cf7-9 iiWQyp"><img src="https://images.ctfassets.net/kbkgmx9upatd/34sqPP9wxDDQ9K5lHsVskY/258586584287a519382334393ad6f02f/code-samples.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob cecPQS">Code samples</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob cvTglX">Experience the features of the Auth0 Identity Platform.</p></a><a href="https://developer.auth0.com/resources/guides" rel="external" target="_blank" class="sc-26497cf7-9 iiWQyp"><img src="https://images.ctfassets.net/kbkgmx9upatd/4oONbQGYMWMCEzw4eo063y/535619cbf64a6fbd9532da49659866d1/developer-guides.svg" alt="" aria-hidden="true" class="sc-26497cf7-10 ccHsGw"/><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob cecPQS">Developer Guides</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bGdnob cvTglX">Learn how to secure apps with the Auth0 Identity Platform.</p></a></div></div></div><div class="sc-26497cf7-11 iPSjiy"><p class="sc-26497cf7-6 hDVpcD">Get started with your favorite language</p><section class="sc-fcaee53a-0 fOTDYz"><div class="sc-fcaee53a-1 kLcviG"><div class="sc-fcaee53a-2 flMxQE"><a href="https://auth0.com/docs/quickstart/spa/angular/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Angular logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="Angular logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2FadPciwtlg6z4SzpmYLwsm%2F25ce2f0e760359305d71019e533937cf%2Fangular.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2FadPciwtlg6z4SzpmYLwsm%2F25ce2f0e760359305d71019e533937cf%2Fangular.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2FadPciwtlg6z4SzpmYLwsm%2F25ce2f0e760359305d71019e533937cf%2Fangular.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2FadPciwtlg6z4SzpmYLwsm%2F25ce2f0e760359305d71019e533937cf%2Fangular.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2FadPciwtlg6z4SzpmYLwsm%2F25ce2f0e760359305d71019e533937cf%2Fangular.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2FadPciwtlg6z4SzpmYLwsm%2F25ce2f0e760359305d71019e533937cf%2Fangular.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2FadPciwtlg6z4SzpmYLwsm%2F25ce2f0e760359305d71019e533937cf%2Fangular.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2FadPciwtlg6z4SzpmYLwsm%2F25ce2f0e760359305d71019e533937cf%2Fangular.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2FadPciwtlg6z4SzpmYLwsm%2F25ce2f0e760359305d71019e533937cf%2Fangular.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">Angular</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Single Page Apps</p></div></a><a href="https://auth0.com/docs/quickstart/spa/react/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="React logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="React logo" sizes="100vw" srcSet="https://images.ctfassets.net/kbkgmx9upatd/13DJpuD5dX3LGrizr19XFN/6292b8457e4c414e4dcc9ba27c8fd789/react-logo.svg 640w, https://images.ctfassets.net/kbkgmx9upatd/13DJpuD5dX3LGrizr19XFN/6292b8457e4c414e4dcc9ba27c8fd789/react-logo.svg 750w, https://images.ctfassets.net/kbkgmx9upatd/13DJpuD5dX3LGrizr19XFN/6292b8457e4c414e4dcc9ba27c8fd789/react-logo.svg 828w, https://images.ctfassets.net/kbkgmx9upatd/13DJpuD5dX3LGrizr19XFN/6292b8457e4c414e4dcc9ba27c8fd789/react-logo.svg 1080w, https://images.ctfassets.net/kbkgmx9upatd/13DJpuD5dX3LGrizr19XFN/6292b8457e4c414e4dcc9ba27c8fd789/react-logo.svg 1200w, https://images.ctfassets.net/kbkgmx9upatd/13DJpuD5dX3LGrizr19XFN/6292b8457e4c414e4dcc9ba27c8fd789/react-logo.svg 1920w, https://images.ctfassets.net/kbkgmx9upatd/13DJpuD5dX3LGrizr19XFN/6292b8457e4c414e4dcc9ba27c8fd789/react-logo.svg 2048w, https://images.ctfassets.net/kbkgmx9upatd/13DJpuD5dX3LGrizr19XFN/6292b8457e4c414e4dcc9ba27c8fd789/react-logo.svg 3840w" src="https://images.ctfassets.net/kbkgmx9upatd/13DJpuD5dX3LGrizr19XFN/6292b8457e4c414e4dcc9ba27c8fd789/react-logo.svg" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">React</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Single Page Apps</p></div></a><a href="https://auth0.com/docs/quickstart/spa/vuejs/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Vue (v3+) logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="Vue (v3+) logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7EJsioD5JYJnAKl5ZmMQai%2F0f315527bc0200af76216b1f826bb4a1%2Fvue.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7EJsioD5JYJnAKl5ZmMQai%2F0f315527bc0200af76216b1f826bb4a1%2Fvue.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7EJsioD5JYJnAKl5ZmMQai%2F0f315527bc0200af76216b1f826bb4a1%2Fvue.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7EJsioD5JYJnAKl5ZmMQai%2F0f315527bc0200af76216b1f826bb4a1%2Fvue.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7EJsioD5JYJnAKl5ZmMQai%2F0f315527bc0200af76216b1f826bb4a1%2Fvue.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7EJsioD5JYJnAKl5ZmMQai%2F0f315527bc0200af76216b1f826bb4a1%2Fvue.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7EJsioD5JYJnAKl5ZmMQai%2F0f315527bc0200af76216b1f826bb4a1%2Fvue.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7EJsioD5JYJnAKl5ZmMQai%2F0f315527bc0200af76216b1f826bb4a1%2Fvue.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7EJsioD5JYJnAKl5ZmMQai%2F0f315527bc0200af76216b1f826bb4a1%2Fvue.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">Vue (v3+)</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Single Page Apps</p></div></a><a href="https://auth0.com/docs/quickstart/webapp/python/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Python logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="Python logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7gYPT6bbhPK0pJ8ushzYXx%2F643e86dc7c1eaddd9cb0aefe825b777d%2Fpython.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7gYPT6bbhPK0pJ8ushzYXx%2F643e86dc7c1eaddd9cb0aefe825b777d%2Fpython.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7gYPT6bbhPK0pJ8ushzYXx%2F643e86dc7c1eaddd9cb0aefe825b777d%2Fpython.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7gYPT6bbhPK0pJ8ushzYXx%2F643e86dc7c1eaddd9cb0aefe825b777d%2Fpython.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7gYPT6bbhPK0pJ8ushzYXx%2F643e86dc7c1eaddd9cb0aefe825b777d%2Fpython.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7gYPT6bbhPK0pJ8ushzYXx%2F643e86dc7c1eaddd9cb0aefe825b777d%2Fpython.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7gYPT6bbhPK0pJ8ushzYXx%2F643e86dc7c1eaddd9cb0aefe825b777d%2Fpython.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7gYPT6bbhPK0pJ8ushzYXx%2F643e86dc7c1eaddd9cb0aefe825b777d%2Fpython.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7gYPT6bbhPK0pJ8ushzYXx%2F643e86dc7c1eaddd9cb0aefe825b777d%2Fpython.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">Python</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Webapp</p></div></a><a href="https://auth0.com/docs/quickstart/backend/nodejs/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Node.js logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="Node.js logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2O5JUjVeFT9Nfvsc5VvHqn%2F33ba3eccb2a9aed555234eed7d29ecf4%2Fnodejs.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2O5JUjVeFT9Nfvsc5VvHqn%2F33ba3eccb2a9aed555234eed7d29ecf4%2Fnodejs.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2O5JUjVeFT9Nfvsc5VvHqn%2F33ba3eccb2a9aed555234eed7d29ecf4%2Fnodejs.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2O5JUjVeFT9Nfvsc5VvHqn%2F33ba3eccb2a9aed555234eed7d29ecf4%2Fnodejs.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2O5JUjVeFT9Nfvsc5VvHqn%2F33ba3eccb2a9aed555234eed7d29ecf4%2Fnodejs.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2O5JUjVeFT9Nfvsc5VvHqn%2F33ba3eccb2a9aed555234eed7d29ecf4%2Fnodejs.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2O5JUjVeFT9Nfvsc5VvHqn%2F33ba3eccb2a9aed555234eed7d29ecf4%2Fnodejs.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2O5JUjVeFT9Nfvsc5VvHqn%2F33ba3eccb2a9aed555234eed7d29ecf4%2Fnodejs.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F2O5JUjVeFT9Nfvsc5VvHqn%2F33ba3eccb2a9aed555234eed7d29ecf4%2Fnodejs.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">Node.js</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Backend/API</p></div></a><a href="https://auth0.com/docs/quickstart/webapp/aspnet-core/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="ASP.NET Core logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="ASP.NET Core logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F4WS6irh59zl4jVAhoOGuTF%2F53974504a8dc6d4aad35b0fe974ab4ff%2Fnet.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F4WS6irh59zl4jVAhoOGuTF%2F53974504a8dc6d4aad35b0fe974ab4ff%2Fnet.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F4WS6irh59zl4jVAhoOGuTF%2F53974504a8dc6d4aad35b0fe974ab4ff%2Fnet.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F4WS6irh59zl4jVAhoOGuTF%2F53974504a8dc6d4aad35b0fe974ab4ff%2Fnet.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F4WS6irh59zl4jVAhoOGuTF%2F53974504a8dc6d4aad35b0fe974ab4ff%2Fnet.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F4WS6irh59zl4jVAhoOGuTF%2F53974504a8dc6d4aad35b0fe974ab4ff%2Fnet.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F4WS6irh59zl4jVAhoOGuTF%2F53974504a8dc6d4aad35b0fe974ab4ff%2Fnet.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F4WS6irh59zl4jVAhoOGuTF%2F53974504a8dc6d4aad35b0fe974ab4ff%2Fnet.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F4WS6irh59zl4jVAhoOGuTF%2F53974504a8dc6d4aad35b0fe974ab4ff%2Fnet.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">ASP.NET Core</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Webapp</p></div></a><a href="https://auth0.com/docs/quickstart/backend/java-spring-security5/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Spring MVC logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="Spring MVC logo" sizes="100vw" srcSet="https://images.ctfassets.net/kbkgmx9upatd/2E45AtLErXf0nCL9Lh0CLE/f64269a74063e4d9ea7efed9551e507f/spring.svg 640w, https://images.ctfassets.net/kbkgmx9upatd/2E45AtLErXf0nCL9Lh0CLE/f64269a74063e4d9ea7efed9551e507f/spring.svg 750w, https://images.ctfassets.net/kbkgmx9upatd/2E45AtLErXf0nCL9Lh0CLE/f64269a74063e4d9ea7efed9551e507f/spring.svg 828w, https://images.ctfassets.net/kbkgmx9upatd/2E45AtLErXf0nCL9Lh0CLE/f64269a74063e4d9ea7efed9551e507f/spring.svg 1080w, https://images.ctfassets.net/kbkgmx9upatd/2E45AtLErXf0nCL9Lh0CLE/f64269a74063e4d9ea7efed9551e507f/spring.svg 1200w, https://images.ctfassets.net/kbkgmx9upatd/2E45AtLErXf0nCL9Lh0CLE/f64269a74063e4d9ea7efed9551e507f/spring.svg 1920w, https://images.ctfassets.net/kbkgmx9upatd/2E45AtLErXf0nCL9Lh0CLE/f64269a74063e4d9ea7efed9551e507f/spring.svg 2048w, https://images.ctfassets.net/kbkgmx9upatd/2E45AtLErXf0nCL9Lh0CLE/f64269a74063e4d9ea7efed9551e507f/spring.svg 3840w" src="https://images.ctfassets.net/kbkgmx9upatd/2E45AtLErXf0nCL9Lh0CLE/f64269a74063e4d9ea7efed9551e507f/spring.svg" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">Spring MVC</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Backend/API</p></div></a><a href="https://auth0.com/docs/quickstart/webapp/express/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Express.js logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="Express.js logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F5xucl9NhMIY3EzngPzMeAW%2Ff009c6a3480ef13cf15d35e197d6e910%2Fjs.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F5xucl9NhMIY3EzngPzMeAW%2Ff009c6a3480ef13cf15d35e197d6e910%2Fjs.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F5xucl9NhMIY3EzngPzMeAW%2Ff009c6a3480ef13cf15d35e197d6e910%2Fjs.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F5xucl9NhMIY3EzngPzMeAW%2Ff009c6a3480ef13cf15d35e197d6e910%2Fjs.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F5xucl9NhMIY3EzngPzMeAW%2Ff009c6a3480ef13cf15d35e197d6e910%2Fjs.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F5xucl9NhMIY3EzngPzMeAW%2Ff009c6a3480ef13cf15d35e197d6e910%2Fjs.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F5xucl9NhMIY3EzngPzMeAW%2Ff009c6a3480ef13cf15d35e197d6e910%2Fjs.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F5xucl9NhMIY3EzngPzMeAW%2Ff009c6a3480ef13cf15d35e197d6e910%2Fjs.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F5xucl9NhMIY3EzngPzMeAW%2Ff009c6a3480ef13cf15d35e197d6e910%2Fjs.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">Express.js</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Webapp</p></div></a><a href="https://auth0.com/docs/quickstart/webapp/php/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="PHP logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="PHP logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F3MTtpqYtaWNenalGqE8RIz%2Fd34e41d7ece73a37d7f4fd2ef81f7a0b%2Fphp.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F3MTtpqYtaWNenalGqE8RIz%2Fd34e41d7ece73a37d7f4fd2ef81f7a0b%2Fphp.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F3MTtpqYtaWNenalGqE8RIz%2Fd34e41d7ece73a37d7f4fd2ef81f7a0b%2Fphp.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F3MTtpqYtaWNenalGqE8RIz%2Fd34e41d7ece73a37d7f4fd2ef81f7a0b%2Fphp.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F3MTtpqYtaWNenalGqE8RIz%2Fd34e41d7ece73a37d7f4fd2ef81f7a0b%2Fphp.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F3MTtpqYtaWNenalGqE8RIz%2Fd34e41d7ece73a37d7f4fd2ef81f7a0b%2Fphp.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F3MTtpqYtaWNenalGqE8RIz%2Fd34e41d7ece73a37d7f4fd2ef81f7a0b%2Fphp.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F3MTtpqYtaWNenalGqE8RIz%2Fd34e41d7ece73a37d7f4fd2ef81f7a0b%2Fphp.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F3MTtpqYtaWNenalGqE8RIz%2Fd34e41d7ece73a37d7f4fd2ef81f7a0b%2Fphp.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">PHP</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Webapp</p></div></a><a href="https://auth0.com/docs/quickstart/native/ios-swift/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="iOS logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="iOS logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7H973lsB7xMjJQtRufHsdV%2F304b42e912c7d5ae21eb57d3bdc628d2%2Fios.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7H973lsB7xMjJQtRufHsdV%2F304b42e912c7d5ae21eb57d3bdc628d2%2Fios.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7H973lsB7xMjJQtRufHsdV%2F304b42e912c7d5ae21eb57d3bdc628d2%2Fios.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7H973lsB7xMjJQtRufHsdV%2F304b42e912c7d5ae21eb57d3bdc628d2%2Fios.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7H973lsB7xMjJQtRufHsdV%2F304b42e912c7d5ae21eb57d3bdc628d2%2Fios.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7H973lsB7xMjJQtRufHsdV%2F304b42e912c7d5ae21eb57d3bdc628d2%2Fios.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7H973lsB7xMjJQtRufHsdV%2F304b42e912c7d5ae21eb57d3bdc628d2%2Fios.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7H973lsB7xMjJQtRufHsdV%2F304b42e912c7d5ae21eb57d3bdc628d2%2Fios.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7H973lsB7xMjJQtRufHsdV%2F304b42e912c7d5ae21eb57d3bdc628d2%2Fios.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">iOS</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Mobile</p></div></a><a href="https://auth0.com/docs/quickstart/native/android/interactive" rel="external" target="_blank" class="sc-26497cf7-13 cmHbVl"><figure tabindex="0" class="sc-26497cf7-12 eHKvVm"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Android logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"/><noscript><img alt="Android logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7cgZvWdg8HYqhX7bK971rZ%2F17830a204d03923abfd5b0e8caaede5f%2Fandroid.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7cgZvWdg8HYqhX7bK971rZ%2F17830a204d03923abfd5b0e8caaede5f%2Fandroid.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7cgZvWdg8HYqhX7bK971rZ%2F17830a204d03923abfd5b0e8caaede5f%2Fandroid.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7cgZvWdg8HYqhX7bK971rZ%2F17830a204d03923abfd5b0e8caaede5f%2Fandroid.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7cgZvWdg8HYqhX7bK971rZ%2F17830a204d03923abfd5b0e8caaede5f%2Fandroid.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7cgZvWdg8HYqhX7bK971rZ%2F17830a204d03923abfd5b0e8caaede5f%2Fandroid.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7cgZvWdg8HYqhX7bK971rZ%2F17830a204d03923abfd5b0e8caaede5f%2Fandroid.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7cgZvWdg8HYqhX7bK971rZ%2F17830a204d03923abfd5b0e8caaede5f%2Fandroid.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fkbkgmx9upatd%2F7cgZvWdg8HYqhX7bK971rZ%2F17830a204d03923abfd5b0e8caaede5f%2Fandroid.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" loading="lazy"/></noscript></span></figure><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 bMfiLw gGjTyi">Android</p><div class="sc-26497cf7-8 jKzKvn"><p type="default" class="styled__Label-sc-1b71zc1-0 gxBRYe">Mobile</p></div></a></div></div><div class="sc-fcaee53a-3 fxqFAI arrows-container"><button aria-label="Previous slide" class="sc-fcaee53a-4 hPEmZI"><svg width="52" height="14" viewBox="0 0 52 14" fill="none" xmlns="http://www.w3.org/2000/svg"><line y1="6.78659" x2="50" y2="6.78659" stroke="white" stroke-width="1.5"></line><path d="M44 1L50 6.85366L44 12.7073" stroke="white" stroke-width="1.5"></path></svg></button><button aria-label="Next slide" class="sc-fcaee53a-4 cedQTI"><svg width="52" height="14" viewBox="0 0 52 14" fill="none" xmlns="http://www.w3.org/2000/svg"><line y1="6.78659" x2="50" y2="6.78659" stroke="white" stroke-width="1.5"></line><path d="M44 1L50 6.85366L44 12.7073" stroke="white" stroke-width="1.5"></path></svg></button></div></section></div></div></section><section class="sc-b98219fb-0 fGXoOF"><h2 class="sc-b98219fb-1 bZDsbc">Our Latest content</h2><div class="sc-b98219fb-2 gLlsoc"><div class="sc-b98219fb-3 jRdQsF"><a href="/blog/auth0-organizations-for-b2b-saas-blazor-web-apps" target="_blank" class="sc-b98219fb-5 kltfAL"><figure class="sc-b98219fb-6 cnSHJi"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4iM5kVfghB6lIZpWzwEs6e%2Fc369b375e74f84945dbb8a860ad6b9ed%2Fblazor-logo&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4iM5kVfghB6lIZpWzwEs6e%2Fc369b375e74f84945dbb8a860ad6b9ed%2Fblazor-logo&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4iM5kVfghB6lIZpWzwEs6e%2Fc369b375e74f84945dbb8a860ad6b9ed%2Fblazor-logo&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4iM5kVfghB6lIZpWzwEs6e%2Fc369b375e74f84945dbb8a860ad6b9ed%2Fblazor-logo&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4iM5kVfghB6lIZpWzwEs6e%2Fc369b375e74f84945dbb8a860ad6b9ed%2Fblazor-logo&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4iM5kVfghB6lIZpWzwEs6e%2Fc369b375e74f84945dbb8a860ad6b9ed%2Fblazor-logo&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4iM5kVfghB6lIZpWzwEs6e%2Fc369b375e74f84945dbb8a860ad6b9ed%2Fblazor-logo&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4iM5kVfghB6lIZpWzwEs6e%2Fc369b375e74f84945dbb8a860ad6b9ed%2Fblazor-logo&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4iM5kVfghB6lIZpWzwEs6e%2Fc369b375e74f84945dbb8a860ad6b9ed%2Fblazor-logo&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></figure><div class="sc-b98219fb-4 cgMGoc"><p href="/blog/auth0-organizations-for-b2b-saas-blazor-web-apps" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 iMCbpH MxiNT">Add Auth0 Organizations to Your B2B Blazor Web App</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU dDpFyj">Enable multitenancy in your Blazor Web App with Auth0 Organizations and get ready for B2B.</p></div></a><a href="/blog/genai-tool-calling-intro" target="_blank" class="sc-b98219fb-5 kltfAL"><figure class="sc-b98219fb-6 cnSHJi"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4LrNhImjPcdPVpmCIrhlG9%2F4efed8dfb26630e6cf48b4a478a1f550%2Fgenai-tool-calling-intro.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4LrNhImjPcdPVpmCIrhlG9%2F4efed8dfb26630e6cf48b4a478a1f550%2Fgenai-tool-calling-intro.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4LrNhImjPcdPVpmCIrhlG9%2F4efed8dfb26630e6cf48b4a478a1f550%2Fgenai-tool-calling-intro.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4LrNhImjPcdPVpmCIrhlG9%2F4efed8dfb26630e6cf48b4a478a1f550%2Fgenai-tool-calling-intro.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4LrNhImjPcdPVpmCIrhlG9%2F4efed8dfb26630e6cf48b4a478a1f550%2Fgenai-tool-calling-intro.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4LrNhImjPcdPVpmCIrhlG9%2F4efed8dfb26630e6cf48b4a478a1f550%2Fgenai-tool-calling-intro.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4LrNhImjPcdPVpmCIrhlG9%2F4efed8dfb26630e6cf48b4a478a1f550%2Fgenai-tool-calling-intro.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4LrNhImjPcdPVpmCIrhlG9%2F4efed8dfb26630e6cf48b4a478a1f550%2Fgenai-tool-calling-intro.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F4LrNhImjPcdPVpmCIrhlG9%2F4efed8dfb26630e6cf48b4a478a1f550%2Fgenai-tool-calling-intro.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></figure><div class="sc-b98219fb-4 cgMGoc"><p href="/blog/genai-tool-calling-intro" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 iMCbpH MxiNT">Tool Calling in AI Agents: Empowering Intelligent Automation Securely</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU dDpFyj">Discover how AI agents are taking center stage by seamlessly integrating with multiple digital tools like Gmail, Calendar, Slack, and Google Drive to be more efficient. Learn why it is important to secure them and how to do it.</p></div></a><a href="/blog/building-a-secure-rag-with-python-langchain-and-openfga" target="_blank" class="sc-b98219fb-5 kltfAL"><figure class="sc-b98219fb-6 cnSHJi"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F26C3LpFeTjPcRa8J0dUW8D%2Fae8fb9148b63d11479440074e2be960d%2Flangchain-blog-hero.jpg&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F26C3LpFeTjPcRa8J0dUW8D%2Fae8fb9148b63d11479440074e2be960d%2Flangchain-blog-hero.jpg&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F26C3LpFeTjPcRa8J0dUW8D%2Fae8fb9148b63d11479440074e2be960d%2Flangchain-blog-hero.jpg&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F26C3LpFeTjPcRa8J0dUW8D%2Fae8fb9148b63d11479440074e2be960d%2Flangchain-blog-hero.jpg&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F26C3LpFeTjPcRa8J0dUW8D%2Fae8fb9148b63d11479440074e2be960d%2Flangchain-blog-hero.jpg&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F26C3LpFeTjPcRa8J0dUW8D%2Fae8fb9148b63d11479440074e2be960d%2Flangchain-blog-hero.jpg&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F26C3LpFeTjPcRa8J0dUW8D%2Fae8fb9148b63d11479440074e2be960d%2Flangchain-blog-hero.jpg&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F26C3LpFeTjPcRa8J0dUW8D%2Fae8fb9148b63d11479440074e2be960d%2Flangchain-blog-hero.jpg&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F26C3LpFeTjPcRa8J0dUW8D%2Fae8fb9148b63d11479440074e2be960d%2Flangchain-blog-hero.jpg&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></figure><div class="sc-b98219fb-4 cgMGoc"><p href="/blog/building-a-secure-rag-with-python-langchain-and-openfga" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 iMCbpH MxiNT">Building a Secure RAG with Python, LangChain, and OpenFGA</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU dDpFyj">Learn how to use Okta FGA to secure your LangChain RAG agent in Python.</p></div></a><a href="/blog/genai-llamaindex-js-fga" target="_blank" class="sc-b98219fb-5 kltfAL"><figure class="sc-b98219fb-6 cnSHJi"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F57jTbpn9UVGeYwSetEJd6Y%2F0655357812a2961a5f9bebd6e5d16791%2Fllamaindex-blog-hero.jpg&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F57jTbpn9UVGeYwSetEJd6Y%2F0655357812a2961a5f9bebd6e5d16791%2Fllamaindex-blog-hero.jpg&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F57jTbpn9UVGeYwSetEJd6Y%2F0655357812a2961a5f9bebd6e5d16791%2Fllamaindex-blog-hero.jpg&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F57jTbpn9UVGeYwSetEJd6Y%2F0655357812a2961a5f9bebd6e5d16791%2Fllamaindex-blog-hero.jpg&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F57jTbpn9UVGeYwSetEJd6Y%2F0655357812a2961a5f9bebd6e5d16791%2Fllamaindex-blog-hero.jpg&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F57jTbpn9UVGeYwSetEJd6Y%2F0655357812a2961a5f9bebd6e5d16791%2Fllamaindex-blog-hero.jpg&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F57jTbpn9UVGeYwSetEJd6Y%2F0655357812a2961a5f9bebd6e5d16791%2Fllamaindex-blog-hero.jpg&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F57jTbpn9UVGeYwSetEJd6Y%2F0655357812a2961a5f9bebd6e5d16791%2Fllamaindex-blog-hero.jpg&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2F23aumh6u8s0i%2F57jTbpn9UVGeYwSetEJd6Y%2F0655357812a2961a5f9bebd6e5d16791%2Fllamaindex-blog-hero.jpg&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></figure><div class="sc-b98219fb-4 cgMGoc"><p href="/blog/genai-llamaindex-js-fga" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 iMCbpH MxiNT">Build a Secure RAG Agent Using LlamaIndex and Okta FGA on Node.js</p><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU dDpFyj">Learn how to use Okta FGA to secure your LlamaIndex RAG agent on Node.js.</p></div></a></div></div></section><section class="sc-113b1e24-0 fOGJqL"><div class="sc-113b1e24-1 glyahv"><h2 class="styled__Heading-sc-165cfko-2 utils-sc-11hlfw-0 eYAGXw kHaByn">Sign up for Zero Index</h2><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 kfTahU espJyy">Get your monthly update from the Auth0 Developer Relations team</p></div><div class="sc-113b1e24-2 ceidYu"><div class="sc-16dca9de-0 TDuvq"><div class="sc-16dca9de-3 guMZKf"><div class="sc-16dca9de-4 eTLUSz"></div></div></div></div></section></main><footer class="sc-455c028d-0 gweikZ"><div class="sc-455c028d-1 jFxPLf"><div class="sc-455c028d-2 eJUJkj"><svg width="260" height="32" viewBox="0 0 260 32" fill="none" xmlns="http://www.w3.org/2000/svg" role="img"><title>Auth0 Developer Logo</title><path d="M35.0768 20.0987C35.0768 16.6589 37.9306 15.3594 41.523 15.3594H45.0138C45.2686 15.3594 45.3961 15.2318 45.3961 14.9771V14.4422C45.3961 12.5822 43.995 11.6904 41.9309 11.6904C40.3256 11.6904 39.2301 12.2258 38.6437 13.3723C38.4401 13.7801 38.2615 13.9327 37.8286 13.9327H36.3253C35.8414 13.9327 35.6118 13.678 35.6118 13.2957C35.6118 13.1171 35.6628 12.8624 35.8665 12.4295C36.8348 10.4168 38.7203 9.11731 42.2366 9.11731C46.1603 9.11731 48.4791 10.8502 48.4791 14.6463V20.9398C48.4791 21.5768 48.7083 21.7299 49.2433 21.7299H49.2688C49.7782 21.7299 50.033 21.9846 50.033 22.4941V23.7681C50.033 24.2775 49.7782 24.5323 49.2688 24.5323H48.3771C46.9244 24.5323 46.1858 24.15 45.727 23.1562C45.6504 22.9776 45.5994 22.927 45.4978 22.927C45.3961 22.927 45.3192 22.978 45.1155 23.1562C43.969 24.1755 42.5419 24.7104 40.6309 24.7104C37.7261 24.7104 35.0764 23.3599 35.0764 20.0987H35.0768ZM45.3961 18.3659V18.1111C45.3961 17.8564 45.2686 17.7289 45.0138 17.7289H41.1918C39.4083 17.7289 38.1598 18.3914 38.1598 19.9711C38.1598 21.5509 39.4338 22.2134 40.9626 22.2134C43.3324 22.2134 45.3961 20.7353 45.3961 18.3659Z" fill="white"></path><path d="M51.3072 17.876V10.0538C51.3072 9.54432 51.562 9.2896 52.0714 9.2896H53.6256C54.1351 9.2896 54.3898 9.54432 54.3898 10.0538V17.5958C54.3898 20.0418 55.2815 21.8508 57.8296 21.8508C60.5307 21.8508 61.8043 19.7105 61.8043 17.239V10.0533C61.8043 9.5439 62.059 9.28918 62.5684 9.28918H64.1227C64.6321 9.28918 64.8869 9.5439 64.8869 10.0533V23.7618C64.8869 24.2712 64.6321 24.526 64.1227 24.526H62.7215C62.2627 24.526 62.008 24.2967 61.9314 23.8379L61.8039 23.1499C61.7784 22.9968 61.7018 22.9207 61.5747 22.9207C61.473 22.9207 61.3965 22.9717 61.2693 23.0993C60.2245 24.042 58.9505 24.7046 57.065 24.7046C53.0648 24.7046 51.3064 21.8253 51.3064 17.876H51.3072Z" fill="white"></path><path d="M67.7424 20.377V4.93616C67.7424 4.42672 67.9971 4.172 68.5065 4.172H70.0608C70.5702 4.172 70.8249 4.42672 70.8249 4.93616V8.91087C70.8249 9.1656 70.9525 9.29316 71.2072 9.29316H75.7173C76.2268 9.29316 76.4815 9.54788 76.4815 10.0573V11.3313C76.4815 11.8408 76.2268 12.0959 75.7173 12.0959H71.2072C70.9525 12.0959 70.8249 12.2235 70.8249 12.4782V20.0968C70.8249 21.2177 71.3344 21.7276 72.4808 21.7276H76.0226C76.5321 21.7276 76.7868 21.9823 76.7868 22.4918V23.7658C76.7868 24.2752 76.5321 24.5299 76.0226 24.5299H72.3282C69.1431 24.5299 67.7419 23.2559 67.7419 20.3766L67.7424 20.377Z" fill="white"></path><path d="M78.9031 23.7658V4.93616C78.9031 4.42672 79.1578 4.172 79.6672 4.172H81.2215C81.7309 4.172 81.9856 4.42672 81.9856 4.93616V10.8729C81.9856 11.026 82.0873 11.1277 82.2149 11.1277C82.2914 11.1277 82.3675 11.1021 82.5971 10.8984C83.7181 9.87915 84.9411 9.11499 87.0052 9.11499C90.9799 9.11499 92.7638 11.9177 92.7638 16.0455V23.7662C92.7638 24.2756 92.5091 24.5304 91.9996 24.5304H90.4454C89.9359 24.5304 89.6812 24.2756 89.6812 23.7662V16.1986C89.6812 13.8288 88.764 11.9688 86.267 11.9688C83.5913 11.9688 81.9865 14.1345 81.9865 17.1924V23.7662C81.9865 24.2756 81.7318 24.5304 81.2223 24.5304H79.6681C79.1586 24.5304 78.9039 24.2756 78.9039 23.7662L78.9031 23.7658Z" fill="white"></path><path d="M94.6995 14.3628C94.6995 7.45771 97.3746 3.99243 102.165 3.99243C106.955 3.99243 109.63 7.45771 109.63 14.3628C109.63 21.2678 106.955 24.7076 102.165 24.7076C97.3751 24.7076 94.6995 21.2423 94.6995 14.3628ZM98.445 16.6816L105.197 9.19056C105.299 9.06299 105.35 8.98687 105.35 8.80827C105.35 8.6807 105.325 8.52804 105.146 8.29841C104.458 7.45771 103.49 6.84621 102.165 6.84621C99.3626 6.84621 97.7829 9.39425 97.7829 14.3883C97.7829 15.1014 97.8084 15.7388 97.9104 16.605C97.936 16.7581 98.0121 16.8598 98.1396 16.8598C98.2162 16.8598 98.3182 16.8342 98.4454 16.6816H98.445ZM106.547 14.3117C106.547 13.5982 106.522 12.9612 106.42 12.095C106.394 11.9419 106.318 11.8402 106.191 11.8402C106.114 11.8402 106.012 11.8657 105.885 12.0188L99.1326 19.5099C99.031 19.6374 98.9799 19.7135 98.9799 19.8921C98.9799 20.0197 99.0055 20.1724 99.1836 20.4016C99.8717 21.2423 100.84 21.8538 102.165 21.8538C104.968 21.8538 106.547 19.3057 106.547 14.3117H106.547Z" fill="white"></path><path d="M1.68935 13.6673C6.93599 12.8036 11.0479 8.69124 11.912 3.4446L12.3324 0.893214C12.4131 0.399668 12.0078 -0.0357391 11.5088 0.0023225C7.51403 0.311416 3.74928 1.63395 1.67011 2.48636C0.660431 2.90086 0 3.8821 0 4.97417V13.039C0 13.5134 0.424115 13.8743 0.892565 13.7974L1.68935 13.6669V13.6673Z" fill="white"></path><path d="M14.4422 3.44423C15.3059 8.69088 19.4183 12.8028 24.6649 13.6669L25.4617 13.7974C25.9302 13.8744 26.3543 13.5134 26.3543 13.0391V4.97423C26.3543 3.88173 25.6938 2.90092 24.6842 2.48642C22.605 1.63234 18.8386 0.311472 14.8454 0.00237818C14.3465 -0.0361017 13.9395 0.398052 14.0219 0.893271L14.4422 3.44465V3.44423Z" fill="white"></path><path d="M24.665 16.1959C19.4184 17.0596 15.3065 21.1719 14.4423 26.4186L13.9183 31.3983C13.8702 31.8476 14.3696 32.1642 14.7456 31.9128C14.7494 31.9107 14.7514 31.909 14.7552 31.907C18.0457 29.6877 25.5517 23.8785 26.2946 16.6221C26.331 16.2649 26.0143 15.9734 25.6609 16.0307L24.6663 16.1938L24.6642 16.1959H24.665Z" fill="white"></path><path d="M11.9135 26.4136C11.0498 21.167 6.93746 17.055 1.69082 16.1909L0.621329 16.0144C0.30638 15.9625 0.024473 16.2235 0.0550059 16.5423C0.759355 23.8392 8.36917 29.6848 11.6885 31.9079C12.0323 32.1362 12.4869 31.8618 12.443 31.4511L11.9131 26.4136H11.9135Z" fill="white"></path><path d="M127.968 24.5H121.472V4.2H127.968C134.319 4.2 138.176 8.26 138.176 14.35C138.176 20.411 134.319 24.5 127.968 24.5ZM123.995 6.52V22.18H127.968C132.898 22.18 135.595 19.077 135.595 14.35C135.595 9.594 132.898 6.52 127.968 6.52H123.995ZM147.24 24.674C142.803 24.674 139.903 21.629 139.903 17.105C139.903 12.61 142.745 9.536 146.921 9.536C151.097 9.536 153.823 12.175 153.939 16.554C153.939 16.873 153.91 17.221 153.881 17.569H142.397V17.772C142.484 20.585 144.253 22.557 147.066 22.557C149.154 22.557 150.778 21.455 151.271 19.541H153.678C153.098 22.499 150.662 24.674 147.24 24.674ZM142.542 15.597H151.387C151.155 13.045 149.415 11.624 146.95 11.624C144.775 11.624 142.774 13.19 142.542 15.597ZM159.481 24.5L153.942 9.71H156.494L160.96 21.803L165.397 9.71H167.891L162.352 24.5H159.481ZM175.25 24.674C170.813 24.674 167.913 21.629 167.913 17.105C167.913 12.61 170.755 9.536 174.931 9.536C179.107 9.536 181.833 12.175 181.949 16.554C181.949 16.873 181.92 17.221 181.891 17.569H170.407V17.772C170.494 20.585 172.263 22.557 175.076 22.557C177.164 22.557 178.788 21.455 179.281 19.541H181.688C181.108 22.499 178.672 24.674 175.25 24.674ZM170.552 15.597H179.397C179.165 13.045 177.425 11.624 174.96 11.624C172.785 11.624 170.784 13.19 170.552 15.597ZM184.082 24.5V4.2H186.46V24.5H184.082ZM195.953 24.674C191.632 24.674 188.616 21.6 188.616 17.105C188.616 12.61 191.632 9.536 195.953 9.536C200.274 9.536 203.29 12.61 203.29 17.105C203.29 21.6 200.274 24.674 195.953 24.674ZM195.953 22.557C198.882 22.557 200.854 20.266 200.854 17.105C200.854 13.944 198.882 11.653 195.953 11.653C193.024 11.653 191.052 13.944 191.052 17.105C191.052 20.266 193.024 22.557 195.953 22.557ZM212.89 9.536C216.979 9.536 219.995 12.291 219.995 17.105C219.995 21.629 216.979 24.674 212.89 24.674C210.396 24.674 208.714 23.659 207.815 22.238V30.3H205.437V9.71H207.496L207.815 12.088C208.801 10.725 210.396 9.536 212.89 9.536ZM212.658 22.557C215.587 22.557 217.559 20.324 217.559 17.105C217.559 13.886 215.587 11.653 212.658 11.653C209.758 11.653 207.786 13.886 207.786 17.047C207.786 20.295 209.758 22.557 212.658 22.557ZM228.947 24.674C224.51 24.674 221.61 21.629 221.61 17.105C221.61 12.61 224.452 9.536 228.628 9.536C232.804 9.536 235.53 12.175 235.646 16.554C235.646 16.873 235.617 17.221 235.588 17.569H224.104V17.772C224.191 20.585 225.96 22.557 228.773 22.557C230.861 22.557 232.485 21.455 232.978 19.541H235.385C234.805 22.499 232.369 24.674 228.947 24.674ZM224.249 15.597H233.094C232.862 13.045 231.122 11.624 228.657 11.624C226.482 11.624 224.481 13.19 224.249 15.597ZM244.624 9.71H245.291V12.03H244.102C240.999 12.03 240.158 14.611 240.158 16.96V24.5H237.78V9.71H239.839L240.158 11.943C240.854 10.812 241.985 9.71 244.624 9.71ZM245.852 19.628H248.288C248.375 21.368 249.912 22.644 252.377 22.644C254.465 22.644 255.944 21.745 255.944 20.382C255.944 18.526 254.32 18.381 252.116 18.12C248.81 17.714 246.171 17.047 246.171 13.973C246.171 11.276 248.636 9.507 251.971 9.536C255.335 9.565 257.771 11.131 258.003 14.205H255.567C255.393 12.697 254.001 11.566 251.971 11.566C249.912 11.566 248.52 12.436 248.52 13.799C248.52 15.423 250.086 15.626 252.232 15.887C255.596 16.293 258.293 16.931 258.293 20.208C258.293 22.963 255.654 24.674 252.377 24.674C248.549 24.674 245.91 22.876 245.852 19.628Z" fill="white"></path></svg></div><nav role="navigation" aria-label="footer-navigation" class="sc-455c028d-3 lncPRS"><section role="navigation"><a href="https://auth0.com/docs" role="link" class="sc-455c028d-5 jPaIrl"><span class="sc-455c028d-4 kBqYnO">Documentation</span></a><ul role="menubar" class="sc-455c028d-6 dyruqS"><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/docs/quickstarts" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Quickstarts</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/docs/api" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Auth0 APIs</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/docs/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">SDK Libraries</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/docs/articles" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Articles</a></li></ul></section><section role="navigation"><a href="https://auth0.com/resources" role="link" class="sc-455c028d-5 jPaIrl"><span class="sc-455c028d-4 kBqYnO">Resources</span></a><ul role="menubar" class="sc-455c028d-6 dyruqS"><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://developer.auth0.com/resources/code-samples" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Code Samples</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/blog" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Developer Blog</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://www.youtube.com/oktadev" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Videos</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://identityunlocked.auth0.com/public/49/Identity%2C-Unlocked.--bed7fada" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Podcast</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="/newsletter" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Newsletter</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/docs/glossary" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Glossary</a></li></ul></section><section role="navigation"><p class="sc-455c028d-4 kBqYnO">Tools</p><ul role="menubar" class="sc-455c028d-6 dyruqS"><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://jwt.io/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">JWT Tool</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://webauthn.me/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Webauthn Playground</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://learnpasskeys.io/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Passkeys Playground</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://openidconnect.net/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">OIDC Playground</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://samltool.io/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">SAML Tool</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="http://discord.gg/XbQpZSF2Ys" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Auth0 Lab</a></li></ul></section><section role="navigation"><p class="sc-455c028d-4 kBqYnO">Community</p><ul role="menubar" class="sc-455c028d-6 dyruqS"><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://community.auth0.com/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Forum</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/ambassador-program" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Ambassador Program</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="/events" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Events</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://support.auth0.com/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Support</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/apollo-program" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Apollo Program</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/research-program" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Auth0 Research Program</a></li></ul></section><section role="navigation"><p class="sc-455c028d-4 kBqYnO">Company</p><ul role="menubar" class="sc-455c028d-6 dyruqS"><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/about" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">About Us</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/customers" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Our Customers</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/partners" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Partners</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/careers" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Careers</a><span class="sc-455c028d-8 circrH">We’re hiring!</span></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/press" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Press</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/security" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Compliance</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/social-impact" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Social Impact</a></li></ul></section><section role="navigation"><p class="sc-455c028d-4 kBqYnO">GET STARTED</p><ul role="menubar" class="sc-455c028d-6 dyruqS"><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/signup" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Sign Up</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/pricing" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Pricing</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/contact-us" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gcZFEt">Contact Sales</a></li></ul></section></nav><div class="sc-455c028d-9 fpzcvM"><a href="https://twitter.com/auth0" target="_blank" rel="noopener noreferrer" aria-label="Twitter"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M23.0626 5.13281C22.2469 5.49375 21.3751 5.7375 20.4563 5.85C21.3938 5.2875 22.1157 4.39687 22.4532 3.3375C21.5766 3.85781 20.6063 4.2375 19.5704 4.43906C18.7407 3.55312 17.5594 3 16.2563 3C13.7485 3 11.7188 5.03437 11.7188 7.54219C11.7188 7.89844 11.7563 8.24531 11.836 8.57812C8.06257 8.39062 4.7157 6.58125 2.47976 3.82969C2.0907 4.5 1.8657 5.28281 1.8657 6.1125C1.8657 7.6875 2.67195 9.07969 3.8907 9.89531C3.1407 9.87656 2.43757 9.67031 1.8282 9.32812V9.38437C1.8282 11.5875 3.39382 13.4203 5.47039 13.8375C5.0907 13.9406 4.68757 13.9969 4.27507 13.9969C3.98445 13.9969 3.69851 13.9687 3.42195 13.9125C3.99851 15.7172 5.67664 17.0297 7.66414 17.0672C6.11257 18.2859 4.1532 19.0125 2.02507 19.0125C1.65945 19.0125 1.29851 18.9891 0.942261 18.9469C2.94382 20.25 5.32976 21 7.88914 21C16.2469 21 20.8126 14.0766 20.8126 8.07187C20.8126 7.875 20.8079 7.67812 20.7985 7.48594C21.6844 6.84375 22.4532 6.04688 23.0626 5.13281Z" fill="white"></path></svg></a><a href="https://linkedin.com/company/auth0" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M19.5561 3H4.53738C3.71707 3 2.99988 3.59063 2.99988 4.40156V19.4531C2.99988 20.2687 3.71707 20.9953 4.53738 20.9953H19.5514C20.3764 20.9953 20.9952 20.2641 20.9952 19.4531V4.40156C20.9999 3.59063 20.3764 3 19.5561 3ZM8.578 18H5.99988V9.98438H8.578V18ZM7.378 8.76562H7.35925C6.53425 8.76562 5.99988 8.15156 5.99988 7.38281C5.99988 6.6 6.54831 6 7.39206 6C8.23581 6 8.75144 6.59531 8.77019 7.38281C8.77019 8.15156 8.23581 8.76562 7.378 8.76562ZM17.9999 18H15.4218V13.6172C15.4218 12.5672 15.0468 11.85 14.1139 11.85C13.4014 11.85 12.9796 12.3328 12.7921 12.8016C12.7218 12.9703 12.703 13.2 12.703 13.4344V18H10.1249V9.98438H12.703V11.1C13.078 10.5656 13.6639 9.79688 15.028 9.79688C16.7202 9.79688 17.9999 10.9125 17.9999 13.3172V18Z" fill="white"></path></svg></a><a href="https://www.instagram.com/weareauth0" target="_blank" rel="noopener noreferrer" aria-label="Instagram"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.7501 4.5C16.7439 4.5 17.6861 4.89375 18.3986 5.60156C19.1111 6.30938 19.5001 7.25625 19.5001 8.25V15.75C19.5001 16.7437 19.1064 17.6859 18.3986 18.3984C17.6907 19.1109 16.7439 19.5 15.7501 19.5H8.25012C7.25637 19.5 6.31418 19.1063 5.60168 18.3984C4.88918 17.6906 4.50012 16.7437 4.50012 15.75V8.25C4.50012 7.25625 4.89387 6.31406 5.60168 5.60156C6.3095 4.88906 7.25637 4.5 8.25012 4.5H15.7501ZM15.7501 3H8.25012C5.36262 3 3.00012 5.3625 3.00012 8.25V15.75C3.00012 18.6375 5.36262 21 8.25012 21H15.7501C18.6376 21 21.0001 18.6375 21.0001 15.75V8.25C21.0001 5.3625 18.6376 3 15.7501 3Z" fill="white"></path><path d="M16.8751 8.25C16.2517 8.25 15.7501 7.74844 15.7501 7.125C15.7501 6.50156 16.2517 6 16.8751 6C17.4939 6 18.0001 6.50156 18.0001 7.125C18.0001 7.74844 17.4939 8.25 16.8751 8.25ZM12.0001 9C13.6548 9 15.0001 10.3453 15.0001 12C15.0001 13.6547 13.6548 15 12.0001 15C10.3454 15 9.00012 13.6547 9.00012 12C9.00012 10.3453 10.3454 9 12.0001 9ZM12.0001 7.5C9.51575 7.5 7.50012 9.51562 7.50012 12C7.50012 14.4844 9.51575 16.5 12.0001 16.5C14.4845 16.5 16.5001 14.4844 16.5001 12C16.5001 9.51562 14.4845 7.5 12.0001 7.5Z" fill="white"></path></svg></a><a href="https://github.com/auth0" target="_blank" rel="noopener noreferrer" aria-label="GitHub"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 1.5C6.20156 1.5 1.5 6.32344 1.5 12.2672C1.5 17.025 4.50937 21.0562 8.68125 22.4813C8.74687 22.4953 8.80312 22.5 8.85938 22.5C9.24844 22.5 9.39844 22.2141 9.39844 21.9656C9.39844 21.7078 9.38906 21.0328 9.38437 20.1328C8.99062 20.2219 8.63906 20.2594 8.325 20.2594C6.30469 20.2594 5.84531 18.6891 5.84531 18.6891C5.36719 17.4469 4.67813 17.1141 4.67813 17.1141C3.76406 16.4719 4.67344 16.4531 4.74375 16.4531H4.74844C5.80313 16.5469 6.35625 17.5687 6.35625 17.5687C6.88125 18.4875 7.58437 18.7453 8.2125 18.7453C8.70469 18.7453 9.15 18.5859 9.4125 18.4641C9.50625 17.7703 9.77812 17.2969 10.0781 17.025C7.74844 16.7531 5.29688 15.8297 5.29688 11.7047C5.29688 10.5281 5.70469 9.56719 6.375 8.81719C6.26719 8.54531 5.90625 7.44844 6.47812 5.96719C6.47812 5.96719 6.55312 5.94375 6.7125 5.94375C7.09219 5.94375 7.95 6.08906 9.36563 7.07344C10.2047 6.83437 11.1 6.71719 11.9953 6.7125C12.8859 6.71719 13.7859 6.83437 14.625 7.07344C16.0406 6.08906 16.8984 5.94375 17.2781 5.94375C17.4375 5.94375 17.5125 5.96719 17.5125 5.96719C18.0844 7.44844 17.7234 8.54531 17.6156 8.81719C18.2859 9.57188 18.6937 10.5328 18.6937 11.7047C18.6937 15.8391 16.2375 16.7484 13.8984 17.0156C14.2734 17.3484 14.6109 18.0047 14.6109 19.0078C14.6109 20.4469 14.5969 21.6094 14.5969 21.9609C14.5969 22.2141 14.7422 22.5 15.1312 22.5C15.1875 22.5 15.2531 22.4953 15.3187 22.4813C19.4953 21.0562 22.5 17.0203 22.5 12.2672C22.5 6.32344 17.7984 1.5 12 1.5Z" fill="white"></path></svg></a></div></div><nav class="sc-455c028d-10 iBqHXd"><div role="navigation" aria-label="legal-navigation" class="sc-455c028d-11 ioGeMK"><p class="styled__Paragraph-sc-165cfko-1 utils-sc-11hlfw-0 cmfwvL lbSRKN">©2025 Okta, Inc. All Rights Reserved.</p><ul role="menubar" class="sc-455c028d-12 bMMtVm"><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://status.auth0.com" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gnrHDF">Status</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://www.okta.com/agreements/" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gnrHDF">Legal</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/privacy" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gnrHDF">Privacy</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/web-terms" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM gnrHDF">Terms</a></li><li role="menuitem" class="sc-455c028d-7 jmpnnP"><a href="https://auth0.com/your-privacy-choices" class="styled__Link-sc-bubr9x-0 utils-sc-11hlfw-0 cgEhxM kmMmyj">Your Privacy Choices</a><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative;max-width:100%"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;max-width:100%"><img style="display:block;max-width:100%;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0" alt="" aria-hidden="true" src="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%2740%27%20height=%2718%27/%3e"/></span><img alt="" aria-hidden="true" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="" aria-hidden="true" srcSet="https://cdn.auth0.com/website/footer/ccpa.svg 1x, https://cdn.auth0.com/website/footer/ccpa.svg 2x" src="https://cdn.auth0.com/website/footer/ccpa.svg" decoding="async" data-nimg="intrinsic" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></li></ul></div></nav></footer></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"latestContent":[{"title":"Add Auth0 Organizations to Your B2B Blazor Web App","authors":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"23aumh6u8s0i"}},"id":"2HCuH3W40qazXVABB25aef","type":"Entry","createdAt":"2021-03-22T08:17:46.537Z","updatedAt":"2023-04-14T13:21:31.122Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":5,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"author"}},"locale":"en-US"},"fields":{"path":"andrea-chiarelli","name":"Andrea Chiarelli","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"23aumh6u8s0i"}},"id":"20yAvTcosk60ReBcBSlaOJ","type":"Asset","createdAt":"2021-03-22T08:26:53.021Z","updatedAt":"2021-03-22T08:26:53.021Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"locale":"en-US"},"fields":{"title":"andrea-chiarelli","description":"andrea-chiarelli avatar","file":{"url":"//images.ctfassets.net/23aumh6u8s0i/20yAvTcosk60ReBcBSlaOJ/be0d3d390368edf9cdf3d50e76207164/andrea-chiarelli","details":{"size":23483,"image":{"width":400,"height":400}},"fileName":"andrea-chiarelli","contentType":"image/jpeg"}}},"lastUpdatedBy":"andrea.chiarelli@auth0.com","email":"andrea.chiarelli@auth0.com","twitter":"https://twitter.com/andychiare","github":"https://github.com/andychiare","linkedin":"https://www.linkedin.com/in/andreachiarelli/","isPopular":true,"personalWebsite":"https://andreachiarelli.it/","type":"Auth0 Employee","jobTitle":"Principal Developer Advocate","description":"I have over 20 years of experience as a software engineer and technical author. Throughout my career, I've used several programming languages and technologies for the projects I was involved in, ranging from C# to JavaScript, ASP.NET to Node.js, Angular to React, SOAP to REST APIs, etc.\n\nIn the last few years, I've been focusing on simplifying the developer experience with Identity and related topics, especially in the .NET ecosystem."}}],"path":"auth0-organizations-for-b2b-saas-blazor-web-apps","heroImage":{"url":"https://images.ctfassets.net/23aumh6u8s0i/4iM5kVfghB6lIZpWzwEs6e/c369b375e74f84945dbb8a860ad6b9ed/blazor-logo","size":{"width":1176,"height":1056}},"description":"Enable multitenancy in your Blazor Web App with Auth0 Organizations and get ready for B2B.","category":["Developers","Tutorial",".NET"],"tags":["dotnet","blazor","b2b","saas","organizations","auth0-organizations","multitenancy"],"postContent":"When you build B2B SaaS, you need multitenancy for better resource allocation while keeping security. Auth0 Organizations provides you with a set of features that allow you to build your B2B application with a high level of flexibility. Let's explore how you can use these features to build your B2B SaaS on the .NET platform using Blazor.\n\n\u003e This article uses Blazor as the reference framework to build the sample project, but you can use the same approach with any other server-side ASP.NET Core framework, such as ASP.NET Core MVC and Razor Pages.\n\n## Why Use Organizations?\n\nWhen you use Auth0 to secure your application, you set up an Auth0 tenant to isolate the resources and the users dedicated to it. That's pretty fine when your userbase does not need any further structuring. Assume you need to further isolate groups of users, i.e., you want to create groups of users that can access your application with different authentication options, different sets of roles, or different branding. This is a typical scenario for B2B SaaS, where you provide access to your application to your business customers. Your business customers have their own users, which need to be isolated for security and customization reasons while still using the same application.\n\nThis is where [Auth0 Organizations](https://auth0.com/docs/manage-users/organizations) can help you!\n\nAt a high level, see Auth0 Organizations a way to structure groups of users within an Auth0 tenant, as illustrated by the following diagram:\n\n![B2B SaaS scenario](https://images.ctfassets.net/23aumh6u8s0i/HcP6eST91nYi77WVznv6n/26d733385ce6da51e765d4e4cc2c8385/b2b-saas-scenario.png)\n\nIn a B2B scenario, your application is associated with one Auth0 tenant and supports multiple Organizations, one for each of your customers. These Organizations allow you to isolate users and customize your application for each customer.\n\nLet's see how this works in practice.\n\n## The Sample Project\n\nThroughout this article, you will use a basic Blazor application with Auth0 authentication. You will add support for Auth0 Organizations and will learn how to add users and manage their authentication in the Organization context.\n\nFor the purpose of this article, we will focus on a B2B scenario with the following constraints:\n\n- You set up the Auth0 Organization for your customers.\n- Users can't autonomously sign up.\n- Only members of an Organization can access your application.\n- You create the Organization's members on behalf of your customers.\n\nYou can build the starter application in two ways:\n\n- Using the Auth0 Templates for .NET.\n- Building it from scratch.\n\n### Use the Auth0 Templates for .NET\n\nYou can build the starter application by leveraging the [Auth0 Templates for .NET](https://github.com/auth0/auth0-dotnet-templates) , specifically, the [Blazor Web Application template](https://github.com/auth0/auth0-dotnet-templates/blob/main/docs/auth0blazor.md). Make sure you [follow the instructions to install the NuGet package](https://github.com/auth0/auth0-dotnet-templates?tab=readme-ov-file#installation) and use the Blazor Web App template through the .NET CLI, Visual Studio, or JetBrains Rider.\n\nIf you use the .NET CLI and have the [Auth0 CLI](https://github.com/auth0/auth0-cli) installed on your machine and [logged in to your Auth0 tenant](https://github.com/auth0/auth0-cli?tab=readme-ov-file#authenticating-to-your-tenant), you can leverage the [automatic registration](https://github.com/auth0/auth0-dotnet-templates/blob/main/docs/auth0blazor.md#automatic-registration) feature by simply running the following command:\n\n```shell\ndotnet new auth0blazor -o MyBlazorSaaS\n```\n\nThis command will create a ready-to-run Blazor application with Auth0 authentication embedded in the `MyBlazorSaaS` folder.\n\nOtherwise, if you don't have the Auth0 CLI installed or you use the template with Visual Studio or Rider, you need to [register your app with Auth0](https://auth0.com/docs/get-started/auth0-overview/create-applications/regular-web-apps) and configure the `appsettings.json` file manually.\n\n### Build the app from scratch\n\nIf you want to build your starter application from scratch, read [this article to learn how to add Auth0 authentication to a basic Blazor Web App](https://auth0.com/blog/auth0-authentication-blazor-web-apps/).\n\nWhatever approach you used to build and configure your starter app, run it to make sure that everything works as expected.\n\n\u003cinclude src=\"ebook-ads/dotnetIdentity\" /\u003e\n\n## Set Up a New Organization\n\nNow, assume you sold your awesome SaaS application to the company Acme Inc. You will need to create an Auth0 Organization for them so that they can use your application without interfering with the users of your other customers.\n\n### Create a new Organization\n\nGo to your Auth0 dashboard and select the [Organizations](https://manage.auth0.com/#/organizations) item in the left-hand menu, then click the *Create Organization* button. You will be asked to enter the new Organization's name and display name, as shown in the following image:\n\n![Create new Auth0 Organization](https://images.ctfassets.net/23aumh6u8s0i/4bnU3BB69IvsKmpPY0JbM/b0d9058c5391b310d6e60363c1094698/create-new-auth0-organization.png)\n\nIn the picture above, you can see \"acme\" as the name and \"Acme Inc.\" as the display name of the Organization you are creating. Click the *Add Organization* button and you will navigate to the configuration page for your new customer's Organization:\n\n![Configure Auth0 Organization](https://images.ctfassets.net/23aumh6u8s0i/8mbmwhxgGQHBnzHwmYvYV/b14949904f85dd3260b98fa47cb37d16/configure-auth0-organization.png)\n\nCongratulations! You have created a basic Organization for your customer.\n\n\u003e The Organization's configuration page allows you to manage and customize your customer's Organization. You will use it in the following, but we will not explore all the available features. Read [the documentation to learn how to configure your Organization](https://auth0.com/docs/manage-users/organizations/configure-organizations).\n\nIf you go back to the [Organizations](https://manage.auth0.com/#/organizations) page, you can see the new Organization listed there:\n\n![Auth0 Organization list](https://images.ctfassets.net/23aumh6u8s0i/6i1la8QAT0usxUjQYn3zV6/b35ce10c9b76a30559728bb42a19051b/auth0-organization-list.png)\n\nNote the *Identifier* column. This value will allow you to identify this Organization in your code.\n\n### Enable connections for your Organization\n\nNow, open your Organization page again by clicking the link associated with the Organization's display name (\"Acme Inc.\" in our example), and navigate to the *Connections* tab. Here you can add the [connections](https://auth0.com/docs/authenticate/identity-providers) that determine how users will log in to your application in the context of this Organization.\n\nBy default, you have no connections configured. So, click the *Enable Connections* button and select the connections you want to enable. You could enable just the built-in `Username-Password-Authentication` connection or add a social connection. It depends on how your customer wants their users to access the application. Select the `Username-Password-Authentication` connection and click the *Enable Connection* button:\n\n![Add connection to your Auth0 Organization](https://images.ctfassets.net/23aumh6u8s0i/53cHfntDe9EuPZI40G91bc/de51812795d969908e8e671eba0b0f30/add-connection-to-auth0-organization.png)\n\n\u003e Keep in mind that you can enable only connections that have been already configured for your tenant. If you don't see the connection you want to enable here, navigate to the [Authentication menu of your dashboard](https://manage.auth0.com/#/authentication) and configure it first.\n\nOnce you select a connection and enable it, you will land on the connection configuration page in the context of this Organization, where you can define how users can join the Organization. This choice strictly depends on the type of application you built and how your business customer wants to manage their users. For the purpose of this article, assume that your application is meant to give your customers control over who can access it. In other words, users cannot autonomously sign up for the application. In this scenario, you can leave the default configuration for the `Username-Password-Authentication` connection. Users will not be able to sign up to the application. Only an Organization admin will be able to add users to the Organization:\n\n![Connnection configuration for Auth0 Organization](https://images.ctfassets.net/23aumh6u8s0i/3PsSUjBCVppl61leiHpmmI/abdbda21037bd3d3fed9243f7f8acbda/connnection-configuration-for-auth0-organization.png)\n\n### Configure the Organization's behavior for your app\n\nOnce your customer's Organization is configured, you need to define how users can access your application via an Organization. Navigate to the [Applications \u003e Applications](https://manage.auth0.com/#/applications) menu and select your application. On the configuration page, select the *Organizations* tab. A page like the following will show:\n\n![Configure Organizations for an application](https://images.ctfassets.net/23aumh6u8s0i/6DR5ZRdlqVjnHV4C0EJWmT/b5ffc77e49344ebe943ef61456725eb1/configure-organizations-for-app.png)\n\nOn this page, you define the types of users that can log in to your application in the context of Organizations and the login flow you want to enable. The image above shows the settings you will apply for the purpose of this article. Read the documentation to learn more about [Login Flows for Organizations](https://auth0.com/docs/manage-users/organizations/login-flows-for-organizations).\n\nBased on the constraints we set above, only members of an Organization can log in to your application. So, you select *Business Users* as the type of user. Also, you select *Prompt for Credentials* as the login flow because you want to show the usual login page.\n\nThat's it! The Organization configuration is almost ready.\n\n## Manage User Invitations\n\nThe next step is to add users to the newly created Organization. There are a few ways to accomplish this, depending on the specific strategy you want to use for your application. Based on the constraints defined earlier, you don't want users to sign up for an Organization. Therefore, you will add users to your Auth0 tenant and then [make them members of an Organization](https://auth0.com/docs/manage-users/organizations/configure-organizations/assign-members). Alternatively, you can invite them to join an Organization via email. Basically, the user will receive an email with a link to join the Organization. If the user accepts the invitation by navigating the link, they are automatically added to the Organization.\n\nLet's explore how you can implement the invitation flow.\n\n### Configure the invitation link\n\nFirst, you need to define a URL that matches your application's route and will handle the invitation. Let's say that `\u003cBASE_URL\u003e/account/invitation` is that invitation URL, where `\u003cBASE_URL\u003e` is the base URL of your application. Navigate to the [Applications page](https://manage.auth0.com/#/applications) of your Auth0 dashboard, select your application, and in the *Settings* tab, scroll down to the *Application URIs* section. Here, add the invitation link to the *Application Login URI* field, as shown below:\n\n![Configuration of invitation link for Organization](https://images.ctfassets.net/23aumh6u8s0i/4RHTo9IDh1o6JuyJ1raU2J/9df8989cf047ce788b27e10c217ad090/organization-invitation-link-configuration.png)\n\n\u003cdiv className=\"alert alert-info alert-icon\"\u003e\n \u003ci className=\"icon-budicon-500\"\u003e\u003c/i\u003e\n \u003cstrong\u003e\n The `\u003cBASE_URL\u003e` must be a public accessible URL. You cannot use `localhost` in the invitation link.\u003cbr/\u003e\n For testing purposes, you can associate a domain name with localhost by adding an entry to your `hosts` file.\n \u003c/strong\u003e\n \u003c/div\u003e\n\n\nClick the *Save Changes* button to complete the configuration.\n\n### Handle the invitation\n\nNow, when the user accepts the invitation received via email and clicks the invitation link, you need to handle the incoming request. The invitation URL generated by Auth0 has two parameters: `invitation`, which is the ID of the invitation instance, and `organization`, which is the ID of the Organization the user is invited to join. Let's implement an endpoint in the Blazor application that handles this request.\n\nGo to the `MyBlazorSaaS` folder and edit the `Program.cs` file by adding the code highlighted below:\n\n```csharp\n// MyBlazorSaaS/Program.cs\n\n// ...existing code...\n\n// 👇 new code\napp.MapGet(\"/account/invitation\", async (HttpContext httpContext, string organization, string invitation) =\u003e\n{\n var authenticationProperties = new LoginAuthenticationPropertiesBuilder()\n .WithOrganization(organization)\n .WithInvitation(invitation)\n .Build();\n\n await httpContext.ChallengeAsync(Auth0Constants.AuthenticationScheme, authenticationProperties);\n});\n// 👆 new code\n\napp.MapRazorComponents\u003cApp\u003e()\n .AddInteractiveServerRenderMode()\n .AddInteractiveWebAssemblyRenderMode()\n .AddAdditionalAssemblies(typeof(MyBlazorSaaS.Client._Imports).Assembly);\n\napp.Run();\n```\n\nThis code leverages the [Auth0 ASP.NET Core Authentication SDK](https://github.com/auth0/auth0-aspnetcore-authentication) to start the login process within an Organization with an invitation.\n\n\u003e You can customize the user invitation experience by adapting the Universal Login page and the email that the user receives. Read [here](https://auth0.com/docs/manage-users/organizations/configure-organizations/invite-members#customize-the-user-invitation-flow) to learn more.\n\nNow your application is ready to handle invitations accepted by the users.\n\n### Send the user invitation\n\nTo invite a user to join your customer's Organization, navigate to the [Organizations menu item of your dashboard](https://manage.auth0.com/#/organizations) and select the Organization you want to add the user to. In the Organization page, select the *Invitations* tab and click the *Invite Members* button:\n\n![Auth0 Organizations invitations](https://images.ctfassets.net/23aumh6u8s0i/b3xbhIexwBQK85SJr0Sgm/2f1d1ee8bfbcb0403459f9c7681b2a84/auth0-organizations-invitations.png)\n\nIn the page that opens, select your application and add the email address of the user you want to invite to join, as shown in the following image:\n\n![Invite members to an Auth0 Organization](https://images.ctfassets.net/23aumh6u8s0i/5HxCOcJI8l4w9UeWodrZvw/d3e2e8a28f1dc232679f8661e467852c/invite-members-to-auth0-organization.png)\n\n\u003e You can invite up to five users at a time from the Auth0 dashboard. You can optionally define the connection with which the user will accept the invitation and the role assigned to the user. These options are out of the scope of this article.\n\nOnce you filled out that form, click the *Send Invites* button.\n\nAs a result, an email with the invitation link will be sent to the user and you will see the newly sent invitation in a *Pending* status on the invitation list page.\n\nWhen the user clicks the invitation URL received via email, they will be redirected to the sign-up form to join the customer's Organization, as in the following example:\n\n![The signup form to join an Auth0 Organization](https://images.ctfassets.net/23aumh6u8s0i/1vy3BEQmgyZWifXtUUIIWp/ab380d01b9f5b5a73ba51d6f8c1a697f/signup-form-join-auth0-organization.png)\n\nOnce the user has chosen a password and created their profile, they are automatically logged in to your application in the context of your customer's Organization.\n\n## Authenticate Users in an Organization\n\nAs you learned earlier, you can configure the login flow in a few different ways. For the purpose of this article, you applied the *Prompt for Credentials* flow. This means that the next time the user logs in, your application will authenticate them through the [Universal Login page](https://auth0.com/docs/authenticate/login/auth0-universal-login) as usual.\n\nIn this scenario, you need to consider two cases: your application knows the user's Organization before authenticating the user or it does not know the user's Organization. Let's analyze both cases.\n\n### Authenticate users without knowing the Organization\n\nAssume your application does not know the user's Organization before authenticating them. In this case, the code to authenticate users does not change:\n\n```csharp\n// MyBlazorSaaS/Program.cs\n\n//...existing code...\n\napp.MapGet(\"/account/login\", async (HttpContext httpContext, string redirectUri = \"/\") =\u003e\n{\n var authenticationProperties = new LoginAuthenticationPropertiesBuilder()\n .WithRedirectUri(redirectUri)\n .Build();\n\n await httpContext.ChallengeAsync(Auth0Constants.AuthenticationScheme, authenticationProperties);\n});\n\n//...existing code...\n\n```\n\nSince Auth0 does not know the Organization to which the user belongs, the tenant's Universal Login page will be shown to the user. In other words, the user does not see the login page that you have possibly customized for the Organization. Only after authentication Auth0 will know what Organization the user is member of and include this information in the `org_id` claim of the ID and access tokens.\n\nSince, in this scenario, your application does not pass the Organization ID to Auth0, you need to validate the value of the `org_id` claim received in the ID and access tokens [for security reasons](https://auth0.com/docs/manage-users/organizations/using-tokens#validate-tokens).\n\nHere is an example of how to validate the `org_id` claim in the tokens you receive from Auth0:\n\n```csharp\n// MyBlazorSaaS/Program.cs\n\n//...existing code...\n\nbuilder.Services\n .AddAuth0WebAppAuthentication(options =\u003e {\n options.Domain = builder.Configuration[\"Auth0:Domain\"];\n options.ClientId = builder.Configuration[\"Auth0:ClientId\"];\n // 👇 new code\n options.OpenIdConnectEvents = new OpenIdConnectEvents\n {\n OnTokenValidated = (context) =\u003e\n {\n var organizationClaimValue = context.SecurityToken.Claims.SingleOrDefault(claim =\u003e claim.Type == \"org_id\")?.Value;\n var expectedOrganizationIds = new List\u003cstring\u003e {\"org_123\", \"org_456\u003e\"};\n if (!string.IsNullOrEmpty(organizationClaimValue) \u0026\u0026 !expectedOrganizationIds.Contains(organizationClaimValue))\n {\n context.Fail(\"Unexpected org_id claim detected.\");\n }\n\n return Task.CompletedTask;\n }\n };\n // 👆 new code\n });\n\n//...existing code...\n```\n\nYou added a handler for the `TokenValidated` event that checks if the value of the `org_id` claim is included in the list of Organization IDs `expectedOrganizationIds`. In case it's not there, an exception is raised.\n\nIn the example above, the content of the `expectedOrganizationIds` list is embedded in the code. In a real-world scenario, the content of this list comes from an external source like a database or an API.\n\n### Authenticate users knowing the Organization\n\nIf your application knows the Organization ID before authenticating the user, your code can send the Organization ID to Auth0 so that the customized login page will be shown. To pass the Organization ID to Auth0, you can simply add a line to your code, as highlighted below:\n\n```csharp\n// MyBlazorSaaS/Program.cs\n\n//...existing code...\n\napp.MapGet(\"/account/login\", async (HttpContext httpContext, string redirectUri = \"/\") =\u003e\n{\n var authenticationProperties = new LoginAuthenticationPropertiesBuilder()\n .WithRedirectUri(redirectUri)\n .WithOrganization(\"\u003cORG_ID\u003e\") //👈 new code\n .Build();\n\n await httpContext.ChallengeAsync(Auth0Constants.AuthenticationScheme, authenticationProperties);\n});\n\n//...existing code...\n\n```\n\nIn the code above, the `WithOrganization()` method gets the Organization ID as a string and includes it as a parameter to be sent to Auth0.\n\n\u003e How your application can get the organization ID before authenticating the user is outside the scope of this article.\n\nIn this case, you don't need to explicitly validate the Organization ID because the SDK will do it for you.\n\n### Get the current user's Organization\n\nWhatever your scenario is, the ID token and access token you receive from Auth0 will contain the Organization ID to which your user belongs. You can use this value to customize your application for this specific Organization.\n\nYou can extract this value directly from the tokens in the token validation step shown earlier:\n\n```csharp\nvar organizationClaimValue = context.SecurityToken.Claims.SingleOrDefault(claim =\u003e claim.Type == \"org_id\")?.Value;\n```\n\nIn any case, you can extract the Organization ID associated with the current user from the [ClaimsPrincipal](https://learn.microsoft.com/en-us/dotnet/api/system.security.claims.claimsprincipal) object of the current User in the [AuthenticationState](https://learn.microsoft.com/en-us/aspnet/core/blazor/security/authentication-state):\n\n```csharp\nprivate Task\u003cAuthenticationState\u003e? authenticationState { get; set; }\n\n...\n\n if (authenticationState is not null)\n {\n var state = await authenticationState;\n\n var orgId = state.User.Claims.SingleOrDefault(claim =\u003e claim.Type == \"org_id\")?.Value;\n }\n```\n\n\u003cinclude src=\"SignupCTA\" text=\"Try out Auth0 authentication for free.\" linkText=\"Get started →\" /\u003e\n\n## Summary\n\nIt was a long journey of exploring Organizations, but I think it was worth it.\n\nYou learned how to create and configure a new Organization to authenticate your customer's users. You defined the type of users and the login flow for your applications and learned how to configure and send user invitations. Then, on your application side, you modified its code to handle the acceptance of those user invitations. Finally, you saw how to authenticate your Organization users both when you know in advance which Organization the user wants to access and when you don't, and how to get the Organization ID of the current user to customize their user experience.\n\nOf course, the use of Auth0 Organizations we have made in this article is minimal and mainly manual. There is still much to explore to make the management of Organizations and users simpler and more automated. We will explore this together in a series of upcoming articles. Stay tuned!\n","dateCreated":"2025-02-18T15:46","readTime":15,"formattedDate":"Feb 18, 2025"},{"title":"Tool Calling in AI Agents: Empowering Intelligent Automation Securely","authors":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"23aumh6u8s0i"}},"id":"3lx6DXRO22Z3Dj6dPHnLSI","type":"Entry","createdAt":"2022-11-17T11:59:30.756Z","updatedAt":"2024-12-13T14:27:59.880Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":34,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"author"}},"locale":"en-US"},"fields":{"path":"deepu-sasidharan","name":"Deepu K Sasidharan","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"23aumh6u8s0i"}},"id":"1fApVZwDd5MqC86klNgqxA","type":"Asset","createdAt":"2022-11-11T11:58:38.431Z","updatedAt":"2022-11-11T11:58:38.431Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"locale":"en-US"},"fields":{"title":"deepu-sasidharan","file":{"url":"//images.ctfassets.net/23aumh6u8s0i/1fApVZwDd5MqC86klNgqxA/8723248ab3b90d30b32f55cc7287f87c/deepu-sasidharan.jpg","details":{"size":143270,"image":{"width":750,"height":750}},"fileName":"deepu-sasidharan.jpg","contentType":"image/jpeg"}}},"lastUpdatedBy":"Robertino Calcaterra","email":"deepu.sasidharan@okta.com","twitter":"https://twitter.com/deepu105","github":"https://github.com/deepu105","linkedin":"https://www.linkedin.com/in/deepu05","isPopular":true,"personalWebsite":"https://deepu.tech/","type":"Auth0 Employee","jobTitle":"Staff Developer Advocate","description":"Deepu is a polyglot developer, Java Champion, and OSS aficionado. He mainly works with Java, JS, Rust, and Golang. He co-leads JHipster and created the JDL Studio and KDash. He's a Staff Developer Advocate at Okta. He is also an international speaker and a published author."}}],"path":"genai-tool-calling-intro","heroImage":{"url":"https://images.ctfassets.net/23aumh6u8s0i/4LrNhImjPcdPVpmCIrhlG9/4efed8dfb26630e6cf48b4a478a1f550/genai-tool-calling-intro.png","size":{"width":1176,"height":1056}},"description":"Discover how AI agents are taking center stage by seamlessly integrating with multiple digital tools like Gmail, Calendar, Slack, and Google Drive to be more efficient. Learn why it is important to secure them and how to do it.","category":["Developers","Deep Dive","AI"],"tags":["ai","tool-calling","token-exchange","ai-agents"],"postContent":"**AI agents** or **Operators** are the latest trend in AI. At their core, agents are autonomous systems that not only process natural language using Large Language Models (LLMs) but also decide when and how to act by interfacing with external tools and APIs. These smart entities blend machine learning with decision-making capabilities, enabling them to perform complex tasks, interact in real-time, use the most efficient tools to perform certain tasks, and even learn from their environment—all without constant human intervention.\n\n## Tool Calling Agents\n\nLLMs on their own are still susceptible to hallucinations and mistakes, but the ability to call tools opens up a whole new world of possibilities where error-prone tasks can be offloaded to a more traditional non-AI tool, like using a calculator to do math rather than relying on the LLM for it. Similarly, tool calling allows AI agents to interface with other applications and services, like Gmail, Calendar, Slack, and Google Drive, to do more for you than just answering questions.\n\nTool calling can be generally classified into these:\n\n1. **Unauthenticated Tools:** These are tools that don't require authentication and are generally simpler to configure, like a calculator, a weather API, or a unit converter.\n2. **Authenticated Tools:** These are tools that require authentication and are generally complex to configure, such as an API provided by another internal application or services like Gmail, Calendar, Slack, and Google Drive.\n\nIn an enterprise environment, the authenticated tools can be further classified into:\n\n1. **First-Party Tools:** These are services that are part of the same infrastructure and require authentication, like an API provided by another internal application or a microservice.\n2. **Third-Party Tools:** These are external services that require more complex authentication. They could be services that are authenticated using service accounts or API keys, like a payment API, or services that need to be authenticated by the end user, such as Gmail, Calendar, Slack, and Google Drive.\n\nTool calling provides many key advantages to an AI agent:\n\n- **Autonomous Decision-Making:** AI agents analyze context and determine the next best action, reducing the need for manual oversight.\n- **Optimized Task Execution:** They can connect to various services and APIs, enabling them to perform specialized tasks like data retrieval, scheduling, and communication.\n- **Scalability and Adaptability:** As systems evolve, agents can easily incorporate new functionalities, adapting to changes in workflow or priorities.\n- **Improved User Experience:** Their ability to tackle diverse tasks leads to more personalized and efficient interactions, making technology feel both intuitive and proactive.\n\n## Tool Calling Agent: A Conceptual Example\n\nImagine an AI personal assistant that consolidates your digital life by dynamically accessing multiple tools to help you stay organized and efficient. Here’s how it could work:\n\n1. **Gmail Integration:** The assistant regularly scans your inbox to generate concise summaries. It highlights urgent emails, categorizes conversations by importance, and even suggests drafts for quick replies.\n2. **Calendar Management:** By interfacing with your calendar, it can remind you of upcoming meetings, check for scheduling conflicts, and even propose the best time slots for new appointments based on your availability.\n3. **Slack Notifications:** For team communications, the assistant monitors Slack channels. It identifies key messages and creates action items, ensuring you never miss an important update from your colleagues.\n4. **Google Drive Access:** Whether you need immediate access to the latest project document or a file related to a current task, the assistant retrieves pertinent documents from Google Drive on demand. It can create document summaries and even create new documents based on your instructions.\n\nWith tool-calling capabilities, the possibilities are endless. In this conceptual scenario, the AI agent embodies a digital personal secretary—one that not only processes information but also proactively collates data from connected services to provide comprehensive task management. This level of integration not only enhances efficiency but also ushers in a new era of intelligent automation, where digital assistants serve as reliable, all-in-one solutions that tailor themselves to your personal and professional needs.\n\n## Security Challenges with Tool Calling AI Agents\n\nBuilding such an assistant is not that difficult. Thanks to frameworks like [LangChain](https://www.langchain.com/), [LlamaIndex](https://www.llamaindex.ai/), and [Vercel AI](https://vercel.com/ai), you can get started quickly. The difficult part is doing it securely so that you can protect the user's data and credentials.\n\nMany current solutions involve storing credentials and secrets in the AI agent application’s environment or letting the agent impersonate the user. Storing credentials securely in the environment might work for APIs that require API keys or service accounts. However, this is not a good idea for cases where the end users need to authenticate to the service, as it can lead to security vulnerabilities and excessive scope and access for the AI agent.\n\n\u003cbr\u003e\n\n\u003cdiv class=\"alert alert-info alert-icon\"\u003e\n \u003ci class=\"icon-budicon-487 icon-info\"\u003e\u003c/i\u003e\n \u003cb\u003eTo learn more about other security concerns and vulnerabilities in AI check out this blog post on \u003ca href=\"https://auth0.com/blog/identity-challenges-for-ai-powered-apps/\"\u003eIdentity Challenges for AI-Powered Applications\u003c/a\u003e.\u003c/b\u003e\u003cbr\u003e \n\u003c/div\u003e\n\nWhen you build an AI agent, you need to consider all its other security implications as well. You don't want an LLM to have unlimited access to your personal data like email and documents, and more importantly, you don't want to provide your credentials to the LLM to access these tools. Let's face it, regardless of how secure the LLM is, there is always a possibility of it getting manipulated into divulging sensitive information or doing something you don't want it to do.\n\n## Tool Calling with the Help of Auth0\n\nThis is where Auth0 comes to the rescue. As the leading identity provider (IdP) for modern applications, our upcoming product, [Auth for GenAI](https://auth0.com/blog/auth-for-genai/), provides standardized ways built on top of OAuth and OpenID Connect to call APIs of tools on behalf of the end user from your AI agent.\n\nAuth0 brokers a secure and controlled handshake between the AI agents and the services you want the agent to interact with on your behalf – in the form of scoped access tokens. This way, the agent and LLM do not have access to the credentials and can only call the tools with the permissions you have defined in Auth0. This also means your AI agent only needs to talk to Auth0 for authentication and not the tools directly, making integrations easier.\n\n### Call first-party APIs on users' behalf\n\nWhen your AI agent, secured with Auth0, needs to call another application also secured with Auth0, you can use standard OAuth 2.0 flows, like the [Authorization Code Flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/device-authorization-flow), to get an API token from that application with user consent. In this case, Auth0 will manage the retrieval of new access tokens using cached refresh tokens when the API token expires.\n\n### Call third-party APIs on users' behalf\n\nWhen your AI agent, secured with Auth0, wants to call external services like Gmail, Calendar, Slack, and Google Drive, Auth0 can help the agent get access tokens for the external service on behalf of the end user. In this case, Auth0 brokers the API access token from the external service to the AI agent.\n\n![Tool calling with Federated API token exchange](https://images.ctfassets.net/23aumh6u8s0i/1gY1jvDgZHSfRloc4qVumu/d44bb7102c1e858e5ac64dea324478fe/tool-calling-with-federated-api-token-exchange.jpg)\n\nThis is made possible by Federated API token exchange, which is a way to obtain an access token from an external identity provider without the need for the user to re-authenticate every time. The end user authenticates and connects the external service once, and Auth0 intermediates the authentication and authorization process and provides the API access token to the AI agent. Auth0 takes care of storing refresh tokens and getting new access tokens when the current access token expires.\n\n## Security Best Practices for Tool Calling AI Agents\n\nHere is a summary of security best practices to consider when building a tool-calling AI agent:\n\n- **Least Privilege**: Grant the minimum permissions needed (e.g., read-only access).\n- **Audit Logs**: Track API calls and credential usage.\n- **Proxying**: Use an IdP like Auth0 as a broker between the AI agent and the tools to protect the user's credentials.\n- **Encryption**: Encrypt credentials at rest and in transit (HTTPS/TLS).\n- **Token Rotation**: Regularly rotate API keys and tokens.\n- **Sandboxing**: Run tools in isolated environments when possible to limit damage from leaks.\n\n## Learn More about AI Agents and Auth for GenAI\n\nThis post offers a glimpse into the transformative potential of AI agents and highlights how secure and intelligent tool calling can empower AI agents to deliver a more connected and personalized experience. Stay tuned for a series of posts on tool-calling Agents with [Auth for GenAI](https://a0.to/ai-content), where we will build the conceptual personal assistant from the previous section in Node.js and Python, showing how to integrate with different types of services securely using your favorite AI frameworks and Auth0.\n\nBefore you go, we have some great news to share: we are working on more content and sample apps in collaboration with amazing GenAI frameworks like [LlamaIndex](https://www.llamaindex.ai/), [LangChain](https://www.langchain.com/), [CrewAI](https://www.crewai.com/), [Vercel AI](https://vercel.com/ai), and [GenKit](https://firebase.google.com/docs/genkit). [Auth for GenAI](https://auth0.com/blog/auth-for-genai/) is our upcoming product to help you protect your user's information in GenAI-powered applications. Make sure to join the [Auth0 Lab Discord server](http://a0.to/auth0-lab-discord) to hear more and ask questions.","dateCreated":"2025-02-14T15:30","readTime":8,"formattedDate":"Feb 14, 2025"},{"title":"Building a Secure RAG with Python, LangChain, and OpenFGA","authors":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"23aumh6u8s0i"}},"id":"7qC8LJD80VSx1qYcSdQ1Zh","type":"Entry","createdAt":"2021-08-23T12:59:46.069Z","updatedAt":"2025-01-08T14:00:38.100Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":42,"revision":6,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"author"}},"locale":"en-US"},"fields":{"path":"juan-cruz-martinez","name":"Juan Cruz Martinez","avatar":{"metadata":{"tags":[{"sys":{"type":"Link","linkType":"Tag","id":"user"}}],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"23aumh6u8s0i"}},"id":"5b3YvfAb53h2I5U6uanww4","type":"Asset","createdAt":"2022-07-07T09:23:40.589Z","updatedAt":"2022-07-07T09:23:56.422Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":10,"revision":5,"locale":"en-US"},"fields":{"title":"jcm","description":"Juan Cruz Martinez","file":{"url":"//images.ctfassets.net/23aumh6u8s0i/5b3YvfAb53h2I5U6uanww4/f1dfa0e19f15f5df8eacd53f78a813f6/jcm.jpeg","details":{"size":29371,"image":{"width":400,"height":400}},"fileName":"jcm.jpeg","contentType":"image/jpeg"}}},"lastUpdatedBy":"Juan Cruz Martinez","email":"juan.martinez@okta.com","twitter":"https://twitter.com/bajcmartinez","github":"https://github.com/bajcmartinez","linkedin":"https://www.linkedin.com/in/bajcmartinez/","isPopular":true,"personalWebsite":"https://jcmartinez.dev/","type":"Auth0 Employee","jobTitle":"Staff Developer Advocate","description":"I stream, blog, and make youtube videos about tech stuff. I love coding, I love AI, and I love building stuff!"}}],"path":"building-a-secure-rag-with-python-langchain-and-openfga","heroImage":{"url":"https://images.ctfassets.net/23aumh6u8s0i/26C3LpFeTjPcRa8J0dUW8D/ae8fb9148b63d11479440074e2be960d/langchain-blog-hero.jpg","size":{"width":3540,"height":3180}},"description":"Learn how to use Okta FGA to secure your LangChain RAG agent in Python.","category":["Developers","Deep Dive","AI"],"tags":["rag","ai","fga","langchain","authorization"],"postContent":"Retrieval-Augmented Generation (RAG) is a great way to create AI-driven applications that deliver more accurate, context-rich answers. Instead of relying purely on pre-trained knowledge, a RAG system retrieves domain-specific data (like PDFs, knowledge bases, or markdown files) and passes it into a language model. This is *awesome* when your data is public or freely shareable. But what happens if some of that data is *restricted* or *confidential*? That’s where fine-grained authorization comes in!\n\nIn this post, we’ll walk through:\n\n1. **Why** authorization is crucial in RAG\n2. **What** OpenFGA is, and how it helps you enforce fine-grained permissions\n3. **How** to build a secure pipeline that filters out unauthorized documents **before** they reach your language model\n\n## The Challenge of Authorization in RAG Systems\n\nRAG systems retrieve relevant information from large datasets and use that information to enhance the AI model responses. While this functionality is powerful, it raises a significant challenge: **ensuring that each user only accesses the information they are authorized to see**. Authorization must be:\n\n* **Accurate**: Only correct data gets through.\n* **Performant**: Works quickly, even with large datasets.\n* **Adaptive**: Updates with dynamic organizational changes, role updates, or any changes in the relationship between the information and the users.\n\nA secure RAG system needs to enforce fine-grained access control without sacrificing speed or scalability. Roles might change, projects can be reassigned, and permissions could evolve over time. Handling all this efficiently is key to building a truly secure and robust RAG application.\n\n## Proposed Solution: Secure Retrieval with LangChain, OpenAI, and OpenFGA\n\nThe solution employs a workflow that integrates document retrieval, user-specific authorization filtering, and Large Language Model (LLM) response generation.\n\nWe’ll build a pipeline that uses:\n\n* **LangChain**: A helpful toolkit for chaining the steps of a RAG pipeline (loading data, embeddings, retrieval, prompting).\n* **LLMs** (OpenAI or any other): For both embeddings (similarity search) and text generation.\n* **OpenFGA**: A fine-grained authorization service that checks, for each document, if a user has the “can_view” relationship.\n\n### LangChain\n\nLangChain is a library that streamlines building LLM applications by assembling different components—like loading documents, vector stores, and prompt templates. This structure makes it easier to read, maintain, and modify your RAG pipeline.\n\n### LLMs\n\nAlthough we’ll demonstrate OpenAI’s embeddings and Chat APIs, you can easily replace them with other providers (e.g., Anthropic, LLaMA, or Azure OpenAI). The main tasks here are:\n\n1. **Embedding** documents so you can do similarity searches.\n2. **Generating** text from the retrieved documents to answer the user’s query.\n\n### FGA and Okta FGA\n\n**FGA (Fine-Grained Authorization)** is about controlling _who can do what_ with _which resources_, down to an individual level. In a typical role-based system, you might say, “Admins can see everything, and Regular Users can see some subset.” But in a real-world app—especially one that deals with many documents—this might not be flexible enough.\n\n**OpenFGA (and Okta FGA)** addresses this by letting you define authorization _relationships_. The relationships defined in the authorization model can be either direct or indirect. Simply put, direct relationships are directly assigned between a consumer and a resource (we call them user and object) and stored in the database. Indirect relationships are the relationships we can infer based on the data and the authorization model.\n\nIf you would like to learn the basics of using FGA for RAG, check out this blog post on [RAG and Access Control: Where Do You Start?](https://auth0.com/blog/rag-and-access-control-where-do-you-start/).\n\n\u003cinclude\n src=\"LinkCard\"\n title=\"RAG and Access Control: Where Do You Start?\"\n link=\"https://auth0.com/blog/rag-and-access-control-where-do-you-start/\"\n description=\"Learn how to get started with Okta FGA for a RAG application.\"\n img=\"https://images.ctfassets.net/23aumh6u8s0i/79NCborGcFIrAMeaV7G8oi/f9c588c2d05f0828d447e72e1fe825cc/Latam01.jpg\"\n/\u003e\n\n## Implementation: Step-by-Step\n\nBelow is a sample setup in Python. We’ll keep it simple so you can see the big picture. Feel free to adapt for your chosen LLM or a more robust data store.\n\n### Set Up Prerequisites\n\nTo follow this tutorial and secure your application, you’ll need the following:\n\n* Python 3.8.1 or newer.\n* An Okta FGA account. If you don’t have one, you can [create one for free](https://dashboard.fga.dev/).\n* An [OpenAI account and API key](https://platform.openai.com/).\n\n### Download and install the sample code\n\nTo get started, clone the[ auth0-ai-samples](https://a0.to/auth0-ai-samples) repository from GitHub:\n\n```\ngit clone https://github.com/oktadev/auth0-ai-samples.git\ncd auth0-ai-samples/authorization-for-rag/langchain-python\n# Create a virtual env\npython -m venv venv\n# Activate the virtual env\nsource ./venv/bin/activate\n# Install dependencies\npip install -r requirements.txt\n```\n\nThe application is written in Python and is structured as follows:\n\n* `main.py` \u0026mdash; The main entry point of the application, and it is where we define the RAG pipeline\n* `docs/*.md` \u0026mdash; Sample markdown files to be used as context for the LLM. There are two types of docs, public and private. Private documents are only accessible to certain individuals.\n* `helpers/memory_store.py` \u0026mdash; Creates an in-memory vector store that acts as the base retriever in the chain.\n* `helpers/read_documents.py` \u0026mdash; Utility to read the markdown files from the `docs` folder.\n* `scripts/fga_init.py` \u0026mdash; Utility to initialize the OktaFGA authorization model and sample data.\n\n### RAG Pipeline\n\nThe `main.py` file defines the RAG pipeline using `Langchain` to interact with the underlying LLM model and retrieve data from our context. In your project, your data may be sourced from different platforms and systems, make sure you check the proper documentation about [loaders in the Langchain ecosystem](https://python.langchain.com/v0.1/docs/modules/data_connection/).\n\nThe following diagram represents the RAG architecture we are defining:\n\n![LangChain RAG architecture](https://images.ctfassets.net/23aumh6u8s0i/4ReiQ2qnjzYRR18KujkHwe/4c4738866ad275b26aed2d7b9c8d3661/langchain-rag.png)\n\nNow let’s talk Python:\n\n```python\nclass RAG:\n def __init__(self):\n documents = read_documents()\n self.vector_store = MemoryStore.from_documents(documents)\n self.prompt = ChatPromptTemplate.from_template(\n \"\"\"You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question. If you don't know the answer, just say that you don't know. Use three sentences maximum and keep the answer concise.\\\\nQuestion: {question}\\\\nContext: {context}\\\\nAnswer:\"\"\"\n )\n\n self.llm = ChatOpenAI(model=\"gpt-4o-mini\")\n\n def query(self, user_id: str, question: str):\n chain = (\n {\n \"context\": FGARetriever(\n retriever=self.vector_store.as_retriever(),\n build_query=lambda doc: ClientBatchCheckItem(\n user=f\"user:{user_id}\",\n object=f\"doc:{doc.metadata.get('id')}\",\n relation=\"viewer\",\n ),\n ),\n \"question\": RunnablePassthrough(),\n }\n | self.prompt\n | self.llm\n | StrOutputParser()\n )\n\n return chain.invoke(question)\n```\n\nLet’s break that down.\n\nThe `RAG` class first initializes a vector store and reads the documents using the helper functions. It also defines a system prompt for our use case and the LLM model in use, in our case, `gpt-40-mini`.\n\nThe class also defines a method query that builds the chain by piping the `FGARetriever` instance with the prompt and the LLM model. `FGARetriever` is provided by the [Auth0 AI SDK for Python](https://github.com/auth0-lab/auth0-ai-python).\n\nThe `FGARetriever` is designed to abstract the base retriever from the FGA query logic. The `build_query` argument lets us specify how to query our FGA model, in this case, by asking if the user is a viewer of the document.\n\n```python\nbuild_query=lambda doc: ClientBatchCheckItem(\n user=f\"user:{user_id}\",\n object=f\"doc:{doc.metadata.get('id')}\",\n relation=\"viewer\",\n),\n```\n\nWith this design, you can plug any Langchain retriever, combined with checks for any FGA model query.\n\n### Create an OktaFGA Account\n\nIf you already have an [Auth0 account](https://auth0.com/), you can use the same credentials to log in to the Okta FGA dashboard at [https://dashboard.fga.dev](https://dashboard.fga.dev/). If you don't have an Auth0 account, hop over to [https://dashboard.fga.dev](https://dashboard.fga.dev/) and create a free account.\n\nOnce you are logged in, you should see a dashboard similar to the one below.\n\n![The Okta FGA Dashboard getting started page](https://images.ctfassets.net/23aumh6u8s0i/38P8Vu4qsBvCGrZ4ePew3C/090d068c68b785311a00aa788b92579b/fga-get-started.png)\n\n\u003e When you log into the Okta FGA dashboard for the first time, you may be asked to create a new store. This store will serve as the home for your authorization model and all the data the engine requires to make authorization decisions. Simply pick a name and create your store to get started.\n\n### Create an OktaFGA Client\n\nOnce you are in the dashboard, you’ll need a client to make API calls to OktaFGA. To create a client, navigate to **Settings**, and in the **Authorized Clients** section, click **Create Client**. Give your client a name, mark all three client permissions, and then click **Create**.\n\n![Create FGA client](https://images.ctfassets.net/23aumh6u8s0i/2KQc8ACR0MDTqftUgUSXpX/5b779bcece07a69ac775de0fc760c208/Uploaded_from_RAG_and_Access_Control__Where_Do_You_Start)\n\nWhen you create the client, OktaFGA will provide you with some data like a Store ID, a Client ID and a Client Secret. Don’t close that yet, you’ll need those values next.\n\nAt the root of the project, there’s a `.env.example` file. Copy the file and paste it as `.env`. Then, open the file and edit the three FGA-related variables with the values provided by OktaFGA. When you are ready, click continue, and the modal will display the values for the missing variables (`FGA_API_URL` and `FGA_API_AUDIENCE`).\n\nAt this step, you can also add your [OpenAI API Key](https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key), which you’ll need to run the demo.\n\n### Configure the OktaFGA model\n\nNow that the application is set up, you can run the provided script to initialize the model and some sample data. To set things up, run:\n\n```\npython ./scripts/fga_init.py\n```\n\nYou can verify that the script worked by navigating to the model explorer page in OktaFGA. The following model should now have been created:\n\n```\nmodel\n schema 1.1\n\ntype user\n\ntype doc\n relations\n define owner: [user]\n define viewer: [user, user:*]\n```\n\n\u003e You can visit the OktaFGA documentation to learn more about [modeling OktaFGA and creating an authorization model](https://docs.fga.dev/modeling).\n\nOn top of the model, the script also created two tuples. Tuples in OktaFGA define the relationships between the types.\n\nFirst, it defined a tuple to give all users access to the public doc:\n\n- **User** :` user:*`\n- **Object** : `public-doc`\n- **Relation** : `viewer`\n\nThen, it created a second tuple to give the admin user access to the private doc:\n\n- **User** :` user:admin`\n- **Object** : `private-doc`\n- **Relation** : `viewer`\n\n\u003e You can visit the OktaFGA documentation to learn more about [tuples and how to create them](https://docs.fga.dev/content/getting-started/new-getting-started#add-tuples).\n\n### Query the Chain\n\nInvoke the chain to process a query and generate a response.\n\n```python\nrag = RAG()\n\nquestion = \"What is the forecast for ZEKO?\"\n\n# Juan only has access to public docs\nresponse = rag.query(\"juan\", question)\nprint(\"Response to Juan:\", response)\n\n# Admin has access to all docs\nresponse = rag.query(\"admin\", question)\nprint(\"Response to Admin:\", response)\n```\n\nFantastic! You now know how to build and scale a secure RAG with Python and LangChain. It’s time to test things out.\n\nTo run the chain, simply call the `main.py` file:\n\n```\npython main.py\n```\n\nIf you follow the steps, you’ll see a response like the following:\n\n```\nResponse to Juan: The retrieved context does not provide any specific forecast or predictions for ZEKO (Zeko Advanced Systems Inc.). It mainly outlines the company's mission, technologies, and products without detailing any financial or market forecasts. Therefore, I don't know the forecast for ZEKO.\n\nResponse to Admin: The forecast for Zeko Advanced Systems Inc. (ZEKO) for fiscal year 2025 is generally bearish. Projected revenue growth is expected to remain subdued at 2-3%, with net income growth projected at 1-2%, primarily due to margin pressures and competitive challenges. Investors should be cautious, given the potential headwinds the company faces.\n```\n\nAs you can see, `Juan` couldn’t retrieve any “protected” data, while the user `admin` got an accurate response to the prompt.\n\n## Conclusion\n\nYou’ve seen how to build a **secure** RAG system that respects user permissions at the **document level** using **OpenFGA**. This approach prevents data leaks, meets security and compliance requirements, and stays flexible—perfect for businesses dealing with a large pool of sensitive information.\n\nFeel free to adapt this flow for other vector stores, different LLM providers, or your own organizational rules. By coupling RAG’s retrieval power with fine-grained authorization, you’ll build AI-driven apps that are both insightful and safe.\n\nBefore you go, we have some great news to share: we are working on more content and sample apps in collaboration with amazing GenAI frameworks like [LlamaIndex](https://www.llamaindex.ai/), [LangChain](https://www.langchain.com/),[ CrewAI](https://www.crewai.com/), [Vercel AI](https://sdk.vercel.ai/), and others. \n\n[Auth for GenAI](https://a0.to/ai-content) is our upcoming product to help you protect your user's information in GenAI-powered applications.\n\nMake sure to join the [Auth0 Lab Discord server](http://a0.to/auth0-lab-discord) to hear more and ask questions.\n\nHappy coding!","dateCreated":"2025-02-12T16:19","readTime":10,"formattedDate":"Feb 12, 2025"},{"title":"Build a Secure RAG Agent Using LlamaIndex and Okta FGA on Node.js","authors":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"23aumh6u8s0i"}},"id":"3lx6DXRO22Z3Dj6dPHnLSI","type":"Entry","createdAt":"2022-11-17T11:59:30.756Z","updatedAt":"2024-12-13T14:27:59.880Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":34,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"author"}},"locale":"en-US"},"fields":{"path":"deepu-sasidharan","name":"Deepu K Sasidharan","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"23aumh6u8s0i"}},"id":"1fApVZwDd5MqC86klNgqxA","type":"Asset","createdAt":"2022-11-11T11:58:38.431Z","updatedAt":"2022-11-11T11:58:38.431Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"locale":"en-US"},"fields":{"title":"deepu-sasidharan","file":{"url":"//images.ctfassets.net/23aumh6u8s0i/1fApVZwDd5MqC86klNgqxA/8723248ab3b90d30b32f55cc7287f87c/deepu-sasidharan.jpg","details":{"size":143270,"image":{"width":750,"height":750}},"fileName":"deepu-sasidharan.jpg","contentType":"image/jpeg"}}},"lastUpdatedBy":"Robertino Calcaterra","email":"deepu.sasidharan@okta.com","twitter":"https://twitter.com/deepu105","github":"https://github.com/deepu105","linkedin":"https://www.linkedin.com/in/deepu05","isPopular":true,"personalWebsite":"https://deepu.tech/","type":"Auth0 Employee","jobTitle":"Staff Developer Advocate","description":"Deepu is a polyglot developer, Java Champion, and OSS aficionado. He mainly works with Java, JS, Rust, and Golang. He co-leads JHipster and created the JDL Studio and KDash. He's a Staff Developer Advocate at Okta. He is also an international speaker and a published author."}}],"path":"genai-llamaindex-js-fga","heroImage":{"url":"https://images.ctfassets.net/23aumh6u8s0i/57jTbpn9UVGeYwSetEJd6Y/0655357812a2961a5f9bebd6e5d16791/llamaindex-blog-hero.jpg","size":{"width":1176,"height":1056}},"description":"Learn how to use Okta FGA to secure your LlamaIndex RAG agent on Node.js.","category":["Developers","Tutorial","AI"],"tags":["ai","fga","llamaindex","rag"],"postContent":"Generative Artificial Intelligence (GenAI) has massively changed the software landscape and AI agents are all the rage now. AI agents can also be used for complex Retrieval-Augmented Generation (RAG) systems where additional context can be provided to the Large Language Model (LLM) by retrieving updated or domain-specific data from a database or a search engine. This technique can reduce hallucinations and improve accuracy of the LLM. AI agents can also use RAG as a tool to perform complex workflows.\n\n[Sensitive Information Disclosure](https://genai.owasp.org/llmrisk/llm022025-sensitive-information-disclosure/) is a common issue that plagues RAG-based systems. We don't want the LLM to accidentally access or expose sensitive data from a database. Traditional Role-Based Access Control (RBAC) systems are not enough to secure RAG applications and agents. This is where [Fine-Grained Authorization (FGA)](https://fga.dev/) shines as a solution.\n\nIf you would like to learn the basics of using FGA for RAG, check out this blog post on [RAG and Access Control: Where Do You Start?](https://auth0.com/blog/rag-and-access-control-where-do-you-start/).\n\n\u003cinclude\n src=\"LinkCard\"\n title=\"RAG and Access Control: Where Do You Start?\"\n link=\"https://auth0.com/blog/rag-and-access-control-where-do-you-start/\"\n description=\"Learn how to get started with Okta FGA for a RAG application.\"\n img=\"https://images.ctfassets.net/23aumh6u8s0i/79NCborGcFIrAMeaV7G8oi/f9c588c2d05f0828d447e72e1fe825cc/Latam01.jpg\"\n/\u003e\n\nIn this tutorial, we will build a simple RAG agent using the [LlamaIndex.TS](https://ts.llamaindex.ai/), which is the JavaScript version of the popular [LlamaIndex](https://www.llamaindex.ai/) framework, and secure it using Okta FGA.\n\n## Prerequisites\n\n\u003e **This tutorial was created with the following tools and services**:\n\u003e\n\u003e - [NodeJS v20](https://nodejs.org/en/download)\n\u003e - An Okta FGA account. [Create one](https://dashboard.fga.dev).\n\u003e - An OpenAI account and API key. [Create one](https://platform.openai.com).\n\n## What Does LlamaIndex Do?\n\n[LlamaIndex](https://www.llamaindex.ai/) is a flexible framework for building AI agents and RAG applications. It provides Python and JavaScript SDKs to interact with a variety of LLMs and databases. LlamaIndex can be used to build AI agents and workflows that can interact with the user, retrieve data from a database, and generate responses using an LLM. It also provides tools like [LlamaParse](https://www.llamaindex.ai/llamaparse) to transform unstructured data into LLM-optimized formats and LlamaCloud to store and retrieve LLM-ready data from the cloud.\n\n## Set up a LlamaIndex RAG Application\n\nTo get started, clone the [**auth0-ai-samples**](https://a0.to/auth0-ai-samples) repository from GitHub:\n\n```bash\ngit clone https://github.com/oktadev/auth0-ai-samples.git\ncd auth0-ai-samples/authorization-for-rag/llamaindex-agentic-js\n# install dependencies\nnpm install\n```\n\nThe application is written in TypeScript for the Node.js platform and is structured as follows:\n\n- `index.ts`: The main entry point of the application that defines the RAG pipeline.\n- `assets/docs/*.md`: Sample markdown documents that will be used as context for the LLM. We have public and private documents for demonstration purposes.\n- `scripts/fga-init.ts`: Utility to initialize the Okta FGA authorization model.\n\nLet us look at the important bits and pieces before we run the application.\n\n### RAG pipeline\n\nThe RAG pipeline is defined in `index.ts`. It uses LlamaIndex Agents to interact with the underlying LLM and retrieve data from the database. The pipeline is defined as follows:\n\n```typescript\n/** index.ts **/\nconst user = 'user1';\n// 1. Read and load documents from the assets folder\nconst documents = await new SimpleDirectoryReader().loadData('./assets/docs');\n// 2. Create an in-memory vector store from the documents using the default OpenAI embeddings\nconst vectorStoreIndex = await VectorStoreIndex.fromDocuments(documents);\n// 3. Create a retriever that uses FGA to gate fetching documents on permissions.\nconst retriever = FGARetriever.create({\n // Set the similarityTopK to retrieve more documents as SimpleDirectoryReader creates chunks\n retriever: vectorStoreIndex.asRetriever({ similarityTopK: 30 }),\n // FGA tuple to query for the user's permissions\n buildQuery: (document) =\u003e ({\n user: `user:${user}`,\n object: `doc:${document.metadata.file_name.split('.')[0]}`,\n relation: 'viewer',\n }),\n});\n// 4. Create a query engine and convert it into a tool\nconst queryEngine = vectorStoreIndex.asQueryEngine({ retriever });\nconst tools = [\n new QueryEngineTool({\n queryEngine,\n metadata: {\n name: 'zeko-internal-tool',\n description: `This tool can answer detailed questions about ZEKO.`,\n },\n }),\n];\n\n// 5. Create an agent using the tools array and OpenAI GPT-4 LLM\nconst agent = new OpenAIAgent({ tools });\n\n// 6. Query the agent\nlet response = await agent.chat({ message: 'Show me forecast for ZEKO?' });\n```\n\nHere is a visual representation of the RAG architecture\n\n![LlamaIndex RAG architecture](https://images.ctfassets.net/23aumh6u8s0i/lGssMbzaSU4J0zXG4bFcC/21f2abbda55a13640350d637609469f7/llamaindex-rag.jpg)\n\n### FGA retriever\n\nThe `FGARetriever` class filters documents based on the authorization model defined in Okta FGA and will be available as part of the [**auth0-ai-js**](https://github.com/auth0-lab/auth0-ai-js) SDK. This retriever is a post-search filter ideal for scenarios where you already have documents in a vector store and want to filter the vector store results based on the user's permissions. Assuming the vector store already narrows down the documents to a few, the FGA retriever will further narrow down the documents to only the ones to which the user has access.\n\nThe alpha version of the retriever can be installed using the following command:\n\n```bash\nnpm install \"https://github.com/auth0-lab/auth0-ai-js.git#alpha-2\" --save\n```\n\nThe build query function is used to construct the query to the FGA store. The query is constructed using the user, object, and relation. The user is the user ID, the object is the document ID or the document name, and the relation is the permission that the user must have on the document.\n\n```typescript\nbuildQuery: (document) =\u003e ({\n user: `user:${user}`,\n object: `doc:${document.metadata.file_name.split(\".\")[0]}`,\n relation: \"viewer\",\n}),\n```\n\n### Retrieval Agent\n\n1. The `queryEngine` is created from the vector store index and configured to use our custom FGA retriever. The query engine handles searching through documents and retrieving relevant information based on user queries.\n\n2. The `tools` array contains a `QueryEngineTool` that wraps our query engine. The tool provides a structured interface for the agent to access the query engine's capabilities.\n\n3. The `agent` is created using OpenAI's GPT-4 model and the tools array. The agent acts as an intelligent interface between the user and the tools - it understands natural language queries, determines when to use the query engine tool, and formulates responses based on the retrieved information.\n\n```typescript\n/** index.ts **/\nconst queryEngine = vectorStoreIndex.asQueryEngine({ retriever });\nconst tools = [\n new QueryEngineTool({\n queryEngine,\n metadata: {\n name: 'zeko-internal-tool',\n description: `This tool can answer detailed questions about ZEKO.`,\n },\n }),\n];\n\n// 5. Create an agent using the tools array and OpenAI GPT-4 LLM\nconst agent = new OpenAIAgent({ tools });\n```\n\n## Set up an FGA Store\n\nIn the [Okta FGA dashboard](https://dashboard.fga.dev/), navigate to **Settings**, and in the **Authorized Clients** section, click **+ Create Client**. Give your client a name, mark all three client permissions, and then click **Create**.\n\n![Create FGA client](https://images.ctfassets.net/23aumh6u8s0i/2KQc8ACR0MDTqftUgUSXpX/5b779bcece07a69ac775de0fc760c208/Uploaded_from_RAG_and_Access_Control__Where_Do_You_Start)\n\nOnce your client is created, you’ll see a modal containing Store ID, Client ID, and Client Secret.\n\nAdd `.env` file with the following content to the root of the project. Click **Continue** to see the `FGA_API_URL` and `FGA_API_AUDIENCE`.\n\n```\n# OpenAI\nOPENAI_API_KEY=\u003cyour-openai-api-key\u003e\n\n# Okta FGA\nFGA_STORE_ID=\u003cyour-fga-store-id\u003e\nFGA_CLIENT_ID=\u003cyour-fga-store-client-id\u003e\nFGA_CLIENT_SECRET=\u003cyour-fga-store-client-secret\u003e\n# Required only for non-US regions\nFGA_API_URL=https://api.xxx.fga.dev\nFGA_API_AUDIENCE=https://api.xxx.fga.dev/\n```\n\n[Check the instructions here to find your OpenAI API key](https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key).\n\nNext, navigate to **Model Explorer**. You’ll need to update the model information with this:\n\n```text\nmodel\n schema 1.1\n\ntype user\n\ntype doc\n relations\n define owner: [user]\n define viewer: [user, user:*]\n```\n\nRemember to click **Save**.\n\n\u003e Check out [this documentation to learn more about creating an authorization model in FGA](https://docs.fga.dev/modeling).\n\nNow, to have access to the public information, you’ll need to add a tuple on FGA. Navigate to the **Tuple Management** section and click **+ Add Tuple**, fill in the following information:\n\n- **User** : `user:*`\n- **Object** : select doc and add `public-doc` in the ID field\n- **Relation** : `viewer`\n\nA tuple signifies a user’s relation to a given object. For example, the above tuple implies that all users can view the `public-doc` object.\n\n\u003e Alternatively, you can use the `scripts/fga-init.ts` script to initialize the FGA store with the model and tuple.\n\u003e Run the `npm run fga:init` command after setting up the `.env` file.\n\n## Test the Application\n\nNow that you have set up the application and the FGA store, you can run the application using the following command:\n\n```bash\nnpm start\n```\n\nThe application will start with the query, `Show me forecast for ZEKO?` Since this information is in a private document, and we haven't defined a tuple with access to this document, the application will not be able to retrieve it. The FGA retriever will filter out the private document from the vector store results and, hence, print a similar output.\n\n```text\nThe provided context does not include specific forecasts or projections for Zeko Advanced Systems Inc. ...\n```\n\nIf you change the query to something that is available in the public document, the application will be able to retrieve the information.\n\nNow, to have access to the private information, you’ll need to update your tuple list. Go back to the Okta FGA dashboard in the **Tuple Management** section and click **+ Add Tuple**, fill in the following information:\n\n- **User** : `user:user1`\n- **Object** : select doc and add `private-doc` in the ID field\n- **Relation** : `viewer`\n\nNow click **Add Tuple** and then run the script again:\n\n```bash\nnpm start\n```\n\nThis time, you should see a response containing the forecast information since we added a tuple that defines the `viewer` relation for `user1` to the `private-doc` object.\n\nCongratulations! You have run a simple RAG application using LlamaIndex and secured it using Okta FGA.\n\n## Learn More about Auth for GenAI, Okta FGA and GenAI\n\nIn this post, you learned how to secure a LlamaIndex-based RAG application using Auth0's [Auth for GenAI](https://a0.to/ai-content) and [Okta FGA](https://fga.dev/). Okta FGA is built on top of OpenFGA, which is open-source. We invite you to check out the [OpenFGA code on GitHub](https://a0.to/fga_repo).\n\nBefore you go, we have some great news to share: we are working on more content and sample apps in collaboration with amazing GenAI frameworks like [LlamaIndex](https://www.llamaindex.ai/), [LangChain](https://www.langchain.com/), [CrewAI](https://www.crewai.com/), [Vercel AI SDK](https://sdk.vercel.ai/), and [GenKit](https://firebase.google.com/docs/genkit). [Auth for GenAI](https://auth0.com/blog/auth-for-genai/) is our upcoming product to help you protect your user's information in GenAI-powered applications. Make sure to join the [Auth0 Lab Discord server](http://a0.to/auth0-lab-discord) to hear more and ask questions.","dateCreated":"2025-02-07T15:01","readTime":9,"formattedDate":"Feb 7, 2025"}],"upcomingEvents":[]},"__N_SSG":true},"page":"/developers","query":{},"buildId":"DJM-GOq0kjpF8lG0dUQU7","isFallback":false,"gsp":true,"locale":"en","locales":["en","fr","de","pt","es"],"defaultLocale":"en","scriptLoader":[]}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10