{"version":1,"pages":[{"id":"-MAjXsTgpMRJlth0ctKx","title":"Authgear Overview","pathname":"/","siteSpaceId":"sitesp_5Z0MS","description":"Authgear is a highly adaptable identity-as-a-service (IDaaS) platform for web and mobile applications"},{"id":"ydILCtuQJIqOtXSQJnQ6","title":"5-Minute Guide","pathname":"/get-started/5-minute-guide","siteSpaceId":"sitesp_5Z0MS","description":"A quick guide on getting started with Authgear","breadcrumbs":[{"label":"Get Started"}]},{"id":"kuwWLpWfXDs0Pnrj4fEw","title":"Auth for MCP","pathname":"/get-started/auth-for-mcp","siteSpaceId":"sitesp_5Z0MS","description":"Use Authgear as the OAuth authorization server for your MCP (Model Context Protocol) server, so AI agents can sign your users in and call your MCP tools with properly scoped, audience-bound access tok","breadcrumbs":[{"label":"Get Started"}]},{"id":"bcCTo4iU6X4IfFQXMl6n","title":"Client ID Metadata Document (CIMD)","pathname":"/get-started/auth-for-mcp/client-id-metadata-document","siteSpaceId":"sitesp_5Z0MS","description":"Let OAuth clients, such as the MCP clients used by AI agents, identify themselves with a metadata document they host at a URL, instead of registering with your project or an admin creating every appli","breadcrumbs":[{"label":"Get Started"},{"label":"Auth for MCP"}]},{"id":"d6Kc2QMWydrXBlliO7uS","title":"Dynamic Client Registration (DCR)","pathname":"/get-started/auth-for-mcp/dynamic-client-registration","siteSpaceId":"sitesp_5Z0MS","description":"Let OAuth clients, such as the MCP clients used by AI agents, register themselves with your project at runtime using Dynamic Client Registration (RFC 7591), instead of an admin creating every applicat","breadcrumbs":[{"label":"Get Started"},{"label":"Auth for MCP"}]},{"id":"DV2lbpTbrISlgGAuQZG6","title":"Start Building","pathname":"/get-started/start-building","siteSpaceId":"sitesp_5Z0MS","description":"Choose the integration approach based on application type","breadcrumbs":[{"label":"Get Started"}]},{"id":"krecH2oILiNdxenJC84w","title":"Single-Page App","pathname":"/get-started/single-page-app","siteSpaceId":"sitesp_5Z0MS","description":"You need to protect a JavaScript SPA application that runs entirely in a browser","breadcrumbs":[{"label":"Get Started"}]},{"id":"cpJZRTXowaem5PW8JpMd","title":"JavaScript (Web)","pathname":"/get-started/single-page-app/website","siteSpaceId":"sitesp_5Z0MS","description":"Integrate Authgear to your website with the Web SDK","breadcrumbs":[{"label":"Get Started"},{"label":"Single-Page App"}]},{"id":"-MbjniMzPmbpZ2MI29aV","title":"React","pathname":"/get-started/single-page-app/react","siteSpaceId":"sitesp_5Z0MS","description":"Follow this quickstart tutorial to add authentication to your React application","breadcrumbs":[{"label":"Get Started"},{"label":"Single-Page App"}]},{"id":"OebXDnWVjMaHZWu9GwaM","title":"Angular","pathname":"/get-started/single-page-app/angular","siteSpaceId":"sitesp_5Z0MS","description":"Follow this quickstart tutorial to add authentication to your Angular application","breadcrumbs":[{"label":"Get Started"},{"label":"Single-Page App"}]},{"id":"dfc7Z8f9qyNYOcOGTALB","title":"Vue","pathname":"/get-started/single-page-app/vue","siteSpaceId":"sitesp_5Z0MS","description":"Follow this quickstart tutorial to add authentication to your Vue application","breadcrumbs":[{"label":"Get Started"},{"label":"Single-Page App"}]},{"id":"hIOADL6CXMw9189pc2oO","title":"Native/Mobile App","pathname":"/get-started/native-mobile-app","siteSpaceId":"sitesp_5Z0MS","description":"If you are developing mobile or desktop applications, choose from one of these SDKs for your platform to get started.","breadcrumbs":[{"label":"Get Started"}]},{"id":"LzMAOMrajRTN1xwCp51w","title":"iOS SDK","pathname":"/get-started/native-mobile-app/ios","siteSpaceId":"sitesp_5Z0MS","description":"Integrate your iOS application with Authgear iOS SDK","breadcrumbs":[{"label":"Get Started"},{"label":"Native/Mobile App"}]},{"id":"JAyUCdyydxw7WN5n45Uz","title":"Android SDK","pathname":"/get-started/native-mobile-app/android","siteSpaceId":"sitesp_5Z0MS","description":"How to use authgear android SDK","breadcrumbs":[{"label":"Get Started"},{"label":"Native/Mobile App"}]},{"id":"wEX2bw4WUaIKFKXtrFBg","title":"Android OKHttp Interceptor Extension (Optional)","pathname":"/get-started/native-mobile-app/android/okhttp-interceptor-extension","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Get Started"},{"label":"Native/Mobile App"},{"label":"Android SDK"}]},{"id":"YtcrWkc6l9FXHnGcFjaU","title":"Flutter SDK","pathname":"/get-started/native-mobile-app/flutter","siteSpaceId":"sitesp_5Z0MS","description":"How to integrate with a Flutter app","breadcrumbs":[{"label":"Get Started"},{"label":"Native/Mobile App"}]},{"id":"Dn1akGNmYT8XruQHU4bR","title":"React Native SDK","pathname":"/get-started/native-mobile-app/react-native","siteSpaceId":"sitesp_5Z0MS","description":"How to integrate with a React Native app","breadcrumbs":[{"label":"Get Started"},{"label":"Native/Mobile App"}]},{"id":"g4tCcrjleuzgU3xxOK1S","title":"Ionic SDK","pathname":"/get-started/native-mobile-app/ionic","siteSpaceId":"sitesp_5Z0MS","description":"Guide on how to use Authgear in an Ionic project","breadcrumbs":[{"label":"Get Started"},{"label":"Native/Mobile App"}]},{"id":"IKTtMHiNmizfVOt8cDPE","title":"Xamarin SDK","pathname":"/get-started/native-mobile-app/xamarin","siteSpaceId":"sitesp_5Z0MS","description":"How to integrate with a Xamarin app","breadcrumbs":[{"label":"Get Started"},{"label":"Native/Mobile App"}]},{"id":"u69BpzZwVs5jj9UmwQcy","title":"Using Authgear without SDK (Client side)","pathname":"/get-started/native-mobile-app/using-authgear-without-sdk-client-side","siteSpaceId":"sitesp_5Z0MS","description":"Integrate Authgear on the client side in mobile apps without SDK","breadcrumbs":[{"label":"Get Started"},{"label":"Native/Mobile App"}]},{"id":"EBHC1D6MxWVER3T479TK","title":"Regular Web App","pathname":"/get-started/regular-web-app","siteSpaceId":"sitesp_5Z0MS","description":"Traditional web app that runs on the server","breadcrumbs":[{"label":"Get Started"}]},{"id":"8nQYH8fElKTHw2uaS1RL","title":"Next.js","pathname":"/get-started/regular-web-app/nextjs","siteSpaceId":"sitesp_5Z0MS","description":"Authentication for Next.js app with Authgear","breadcrumbs":[{"label":"Get Started"},{"label":"Regular Web App"}]},{"id":"B8pK11upMfo3w4xZG7F8","title":"Express","pathname":"/get-started/regular-web-app/express","siteSpaceId":"sitesp_5Z0MS","description":"Authentication for Express.JS apps with Authgear and OAuth2","breadcrumbs":[{"label":"Get Started"},{"label":"Regular Web App"}]},{"id":"xP3aVpZFt0cFH9Q7ren6","title":"Python Flask App","pathname":"/get-started/regular-web-app/python-flask-app","siteSpaceId":"sitesp_5Z0MS","description":"Authentication for a Python web application","breadcrumbs":[{"label":"Get Started"},{"label":"Regular Web App"}]},{"id":"X6ybf9cw2VmVHwEFrPQU","title":"Java Spring Boot","pathname":"/get-started/regular-web-app/java-spring-boot","siteSpaceId":"sitesp_5Z0MS","description":"Authentication for Spring Boot App with Authgear and OAuth2","breadcrumbs":[{"label":"Get Started"},{"label":"Regular Web App"}]},{"id":"In5P7U3NT4JygKlUsZUR","title":"ASP.NET Core MVC","pathname":"/get-started/regular-web-app/asp.net-core-mvc","siteSpaceId":"sitesp_5Z0MS","description":"Add authentication for ASP.NET app with Authgear","breadcrumbs":[{"label":"Get Started"},{"label":"Regular Web App"}]},{"id":"glHG4YqXTwGYNDxNZcI3","title":"Laravel","pathname":"/get-started/regular-web-app/laravel","siteSpaceId":"sitesp_5Z0MS","description":"Authentication for Laravel websites with Authgear and OAuth2","breadcrumbs":[{"label":"Get Started"},{"label":"Regular Web App"}]},{"id":"DZiHpOE5zjDh639ONAKm","title":"PHP","pathname":"/get-started/regular-web-app/php","siteSpaceId":"sitesp_5Z0MS","description":"Authentication for PHP websites with Authgear and OAuth2","breadcrumbs":[{"label":"Get Started"},{"label":"Regular Web App"}]},{"id":"xp8Yw44yzS7vmIMf3OOh","title":"Backend/API Integration","pathname":"/get-started/backend-api","siteSpaceId":"sitesp_5Z0MS","description":"An API or service protected by Authgear","breadcrumbs":[{"label":"Get Started"}]},{"id":"-MbFM4jjzD5DKZzSMBE8","title":"Client SDK to make authorized API calls to backend","pathname":"/get-started/backend-api/using-sdk-to-call-your-application-server","siteSpaceId":"sitesp_5Z0MS","description":"How to make authorized request to your application server after login with Authgear","breadcrumbs":[{"label":"Get Started"},{"label":"Backend/API Integration"}]},{"id":"NBU5LasbVvo4StH1QZjP","title":"Validate JWT in your backend","pathname":"/get-started/backend-api/jwt","siteSpaceId":"sitesp_5Z0MS","description":"Authenticate the incoming HTTP requests by validating JWT in your application server","breadcrumbs":[{"label":"Get Started"},{"label":"Backend/API Integration"}]},{"id":"65ohKeKBRjgqbkNg5IqM","title":"Forward Authentication to Authgear Resolver Endpoint","pathname":"/get-started/backend-api/nginx","siteSpaceId":"sitesp_5Z0MS","description":"Authenticate the incoming HTTP requests by forwarding Authentication to Authgear Resolver Endpoint","breadcrumbs":[{"label":"Get Started"},{"label":"Backend/API Integration"}]},{"id":"dQUvcpB6E7QHUdnuicNd","title":"NestJS API","pathname":"/get-started/backend-api/nestjs","siteSpaceId":"sitesp_5Z0MS","description":"Protect a NestJS API with Authgear using the @authgear/nestjs SDK","breadcrumbs":[{"label":"Get Started"},{"label":"Backend/API Integration"}]},{"id":"73nR2f20BtzG0lv9D0CE","title":"Machine-to-Machine (M2M) Applications","pathname":"/get-started/m2m-applications","siteSpaceId":"sitesp_5Z0MS","description":"Enable secure, automated authorization for your backend systems, microservices, and IoT devices, ensuring only trusted apps and devices can access your APIs.","breadcrumbs":[{"label":"Get Started"}]},{"id":"PyQrUAVUmBx3DyurjCHI","title":"Integration by OIDC","pathname":"/get-started/oidc-provider","siteSpaceId":"sitesp_5Z0MS","description":"Using Authgear as an OpenID Connect Provider for any OIDC compatible applications for Single Sign-On.","breadcrumbs":[{"label":"Get Started"}]},{"id":"BGtorEkEEL9mQdRupmAM","title":"Integration by SAML","pathname":"/get-started/single-sign-on-with-saml","siteSpaceId":"sitesp_5Z0MS","description":"Guides on how to use Authgear as a SAML Identity Provider for Single Sign-On","breadcrumbs":[{"label":"Get Started"}]},{"id":"Q2ArMykBk2SAARnYBfy6","title":"Use Authgear as SAML Identity Provider for Salesforce","pathname":"/get-started/single-sign-on-with-saml/use-authgear-as-saml-identity-provider-for-salesforce","siteSpaceId":"sitesp_5Z0MS","description":"A guide on how to use Authgear as a SAML Identity Provider IdP in Salesforce","breadcrumbs":[{"label":"Get Started"},{"label":"Integration by SAML"}]},{"id":"ShT7he6GCLd3f8TparPa","title":"Use Authgear as SAML Identity Provider for Dropbox","pathname":"/get-started/single-sign-on-with-saml/use-authgear-as-saml-identity-provider-for-dropbox","siteSpaceId":"sitesp_5Z0MS","description":"Guide on how to use Authgear as a SAML IdP for Dropbox","breadcrumbs":[{"label":"Get Started"},{"label":"Integration by SAML"}]},{"id":"3UnIrsUn8liEnXXI88dk","title":"SAML Attribute Mapping","pathname":"/get-started/single-sign-on-with-saml/saml-attribute-mapping","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Get Started"},{"label":"Integration by SAML"}]},{"id":"n291PtQQ52cn31GwcYX8","title":"Skills for AI Agent","pathname":"/build-with-ai/ai-coding-tools","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Build with AI"}]},{"id":"AacHlDK7HYwso2FzQDA3","title":"Authentication","pathname":"/authentication-and-access/authentication","siteSpaceId":"sitesp_5Z0MS","description":"Implement Authgear to control access to your applications","breadcrumbs":[{"label":"Authentication and Access"}]},{"id":"jCUmixJi90z99H9bFpM5","title":"Passwords","pathname":"/authentication-and-access/authentication/passwords","siteSpaceId":"sitesp_5Z0MS","description":"Configure settings for both Primary and Secondary passwords","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"syKpMHZwcSMScMetbwUc","title":"Change Forgot/Reset Password settings","pathname":"/authentication-and-access/authentication/passwords/forgot-reset-password-settings","siteSpaceId":"sitesp_5Z0MS","description":"Configure password reset/account recovery processes.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"},{"label":"Passwords"}]},{"id":"NhtSu6QcpnAuIB0Vh1q1","title":"Password Policy","pathname":"/authentication-and-access/authentication/passwords/password-policy","siteSpaceId":"sitesp_5Z0MS","description":"Setting format and strength requirements for passwords","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"},{"label":"Passwords"}]},{"id":"KaYYKFzfgorkhVcHI0U6","title":"Password Expiry","pathname":"/authentication-and-access/authentication/passwords/password-expiry","siteSpaceId":"sitesp_5Z0MS","description":"Requiring users to reset their password if they haven't logged in after specific number of days","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"},{"label":"Passwords"}]},{"id":"GQUZwUkArvUiY5Rr89Dt","title":"How to Handle Password While Creating Accounts for Users","pathname":"/authentication-and-access/authentication/passwords/how-to-handle-password-while-creating-accounts-for-users","siteSpaceId":"sitesp_5Z0MS","description":"Recommended practices for setting password for a user account created on the Authgear Portal","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"},{"label":"Passwords"}]},{"id":"YYYa13DLuPlBCELXPyOD","title":"Reset Password for Users","pathname":"/authentication-and-access/authentication/passwords/reset-password-for-users","siteSpaceId":"sitesp_5Z0MS","description":"Guide on resetting a user's password via the Authgear Portal or AdminAPI","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"},{"label":"Passwords"}]},{"id":"WIux9aDD8ymVfipPohdR","title":"Add Passkeys Login","pathname":"/authentication-and-access/authentication/passkeys","siteSpaceId":"sitesp_5Z0MS","description":"Passkeys give users a simple and secure way to sign in to your apps and websites across platforms without passwords.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"jZAC3exogBpM0cYlKnt8","title":"Add WhatsApp OTP Login","pathname":"/authentication-and-access/authentication/whatsapp-otp-login","siteSpaceId":"sitesp_5Z0MS","description":"Allow users to log into your app via OTP with WhatsApp, as a secure alternative to SMS","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"hr47v0mFhgONFU6wafNm","title":"Add Email Magic Link Login","pathname":"/authentication-and-access/authentication/add-email-magic-link-login","siteSpaceId":"sitesp_5Z0MS","description":"Passwordless login with email links","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"-MZqP_6MxFh_Cqahts1j","title":"Add Biometric Login","pathname":"/authentication-and-access/authentication/biometric","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"k4Vy0oJZgwLdkby6ID7n","title":"Add Anonymous Users","pathname":"/authentication-and-access/authentication/anonymous-users","siteSpaceId":"sitesp_5Z0MS","description":"Allow guest users to use your apps and website and promote to regular users later.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"YChItZvcDZ70oQ8hCRhc","title":"Enable Two-Factor Authentication (2FA)","pathname":"/authentication-and-access/authentication/enable-two-factor-authentication-2fa","siteSpaceId":"sitesp_5Z0MS","description":"Guide on how to add Two-Factor Authentication to your application.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"-MdQPWOKHiM6TkSQuZ9z","title":"Re-authentication","pathname":"/authentication-and-access/authentication/reauthentication","siteSpaceId":"sitesp_5Z0MS","description":"Authgear provides an easy method to reauthenticate the end-users. You can use this as a security measure to protect sensitive operations.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"U5alH4UHiMr2MeG9xz1F","title":"Add authentication to any web page","pathname":"/authentication-and-access/authentication/add-authentication-to-any-web-page","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to add authentication to any web page without using Authgear's SDKs with IIFE(Immediately-invoked Function Expression) bundle","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"XOrbPbvo0eQSomtoSqD8","title":"Disable Public Signup","pathname":"/authentication-and-access/authentication/disable-public-signup","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"mCha0RTHNQXT2BHa6HGY","title":"Custom Authentication Flow","pathname":"/authentication-and-access/authentication/custom-authentication-flow","siteSpaceId":"sitesp_5Z0MS","description":"Allow users to authenticate with a custom flow.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Authentication"}]},{"id":"hDoh7HkYEHYYb1jHTWsY","title":"Sessions","pathname":"/authentication-and-access/sessions","siteSpaceId":"sitesp_5Z0MS","description":"Control how long users stay signed in, and whether their session survives after the browser is closed.","breadcrumbs":[{"label":"Authentication and Access"}]},{"id":"J0qrxmGVJ9V9D1fw1b9H","title":"Single Sign-on Overview","pathname":"/authentication-and-access/single-sign-on","siteSpaceId":"sitesp_5Z0MS","description":"Provide a seamless user experience across multiple applications with the single sign-on feature.","breadcrumbs":[{"label":"Authentication and Access"}]},{"id":"N5gkFYEoDY1zR5or2Msl","title":"App2App Login","pathname":"/authentication-and-access/single-sign-on/app2app-authorization","siteSpaceId":"sitesp_5Z0MS","description":"Perform faster authentication flow via another app installed on the same device.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Single Sign-on Overview"}]},{"id":"htKkPOOxuQhG7VqbwPYP","title":"App2Web (Pre-authenticated URLs)","pathname":"/authentication-and-access/single-sign-on/pre-authenticated-urls","siteSpaceId":"sitesp_5Z0MS","description":"Use the pre-authenticated URLs feature to open a website from a native app in an authenticated state.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Single Sign-on Overview"}]},{"id":"XtPVuGeorUCVy0ugDzJb","title":"Web2App (From Mobile Apps to Browsers)","pathname":"/authentication-and-access/single-sign-on/sso-with-mobile-app-web-spa","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Single Sign-on Overview"}]},{"id":"uy0d6VnRVZLGsBdTUdcO","title":"Force Authgear to Show Login Page","pathname":"/authentication-and-access/single-sign-on/force-authgear-to-show-login-page","siteSpaceId":"sitesp_5Z0MS","description":"Force Authgear to always show login page even if the user have already logged in.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Single Sign-on Overview"}]},{"id":"-MK07s4NI2qgLsttIj18","title":"Social/Enterprise Login Providers Overview","pathname":"/authentication-and-access/social-enterprise-login-providers","siteSpaceId":"sitesp_5Z0MS","description":"Add third-party identity providers to enable frictionless sign in for your users","breadcrumbs":[{"label":"Authentication and Access"}]},{"id":"3W8enrMynjmgMq0rNCwJ","title":"Social Login Providers","pathname":"/authentication-and-access/social-enterprise-login-providers/social-login-providers","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"}]},{"id":"-MRTFnS2hjNKzh1Gpe6E","title":"Connect Apps to Apple","pathname":"/authentication-and-access/social-enterprise-login-providers/social-login-providers/apple","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"},{"label":"Social Login Providers"}]},{"id":"-MRTFnS345NTTaMKdW-z","title":"Connect Apps to Google","pathname":"/authentication-and-access/social-enterprise-login-providers/social-login-providers/google","siteSpaceId":"sitesp_5Z0MS","description":"Add Google Sign in to your apps in less than 5 minutes.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"},{"label":"Social Login Providers"}]},{"id":"-MRTFnS4TYlNzzcI_dDM","title":"Connect Apps to Facebook","pathname":"/authentication-and-access/social-enterprise-login-providers/social-login-providers/facebook","siteSpaceId":"sitesp_5Z0MS","description":"Add Facebook Sign in to your apps in less than 5 minutes.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"},{"label":"Social Login Providers"}]},{"id":"CptzzDCuDXvY2u9NRbVi","title":"Connect Apps to GitHub","pathname":"/authentication-and-access/social-enterprise-login-providers/social-login-providers/github","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"},{"label":"Social Login Providers"}]},{"id":"-MRTFnS52yQbzrTM_IZ7","title":"Connect Apps to LinkedIn","pathname":"/authentication-and-access/social-enterprise-login-providers/social-login-providers/linkedin","siteSpaceId":"sitesp_5Z0MS","description":"Guide on how to add LinkedIn as a social login provider","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"},{"label":"Social Login Providers"}]},{"id":"CKyPgpQMUeZYS7MQOoRf","title":"Connect Mobile Apps to WeChat","pathname":"/authentication-and-access/social-enterprise-login-providers/social-login-providers/wechat-mobile","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"},{"label":"Social Login Providers"}]},{"id":"VysFqzHXBfSM5tNj1dxt","title":"Connect Websites to WeChat","pathname":"/authentication-and-access/social-enterprise-login-providers/social-login-providers/wechat-web","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"},{"label":"Social Login Providers"}]},{"id":"NKwVf2IiAbX6ZLCCVrHv","title":"Enterprise Login Providers","pathname":"/authentication-and-access/social-enterprise-login-providers/enterprise-login-providers","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"}]},{"id":"-MRTFnS6XVa3hEuIvD0l","title":"Connect Apps to Microsoft Entra ID (Azure AD)","pathname":"/authentication-and-access/social-enterprise-login-providers/enterprise-login-providers/azureadv2","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"},{"label":"Enterprise Login Providers"}]},{"id":"-MZkLt7xm4GJdzti8mZ_","title":"Connect Apps to Microsoft AD FS","pathname":"/authentication-and-access/social-enterprise-login-providers/enterprise-login-providers/adfs","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"},{"label":"Enterprise Login Providers"}]},{"id":"OMYKmdV5Zbwu6h6V7XpT","title":"Connect Apps to Azure AD B2C","pathname":"/authentication-and-access/social-enterprise-login-providers/enterprise-login-providers/azureadb2c","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"},{"label":"Enterprise Login Providers"}]},{"id":"WpVICHroL7aq9OkcoPZp","title":"Account Linking","pathname":"/authentication-and-access/social-enterprise-login-providers/account-linking","siteSpaceId":"sitesp_5Z0MS","description":"Connect a social or enterprise login to an existing account that shares the same email, instead of creating a duplicate user or rejecting the signup.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"}]},{"id":"ImiXzVwmTKk4pI6rSED7","title":"Force Social/Enterprise Login Providers to Show Login Screen","pathname":"/authentication-and-access/social-enterprise-login-providers/force-social-enterprise-login-providers-to-show-login-screen","siteSpaceId":"sitesp_5Z0MS","description":"Use OIDC prompt parameter to force OAuth providers to show login screen.","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"}]},{"id":"c6VMaxdpBeOfTEw8QQRb","title":"Link and Unlink Social/Enterprise Provider with the SDK","pathname":"/authentication-and-access/social-enterprise-login-providers/link-and-unlink-social-enterprise-provider-with-the-sdk","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authentication and Access"},{"label":"Social/Enterprise Login Providers Overview"}]},{"id":"KkRNP1j9ErvDUk4VdvS2","title":"FAQ for Authentication","pathname":"/faq-for-authentication","siteSpaceId":"sitesp_5Z0MS","description":""},{"id":"4e7rXtQz5xgxN931smkt","title":"OTP Test Mode","pathname":"/faq-for-authentication/otp-test-mode","siteSpaceId":"sitesp_5Z0MS","description":"Suppress message delivery and fix OTP for testing purposes","breadcrumbs":[{"label":"FAQ for Authentication"}]},{"id":"1AxHA5LgZULhna1EDXde","title":"Tips for Apple App Store Review with Passwordless Login","pathname":"/faq-for-authentication/passwordless-demo-user-for-apple-app-review","siteSpaceId":"sitesp_5Z0MS","description":"How to pass the Apple Store review process if your app uses passwordless login.","breadcrumbs":[{"label":"FAQ for Authentication"}]},{"id":"aeXAnDEwz8QJ9XKJnisI","title":"Phone Number Validation","pathname":"/faq-for-authentication/phone-number-validation","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"FAQ for Authentication"}]},{"id":"evn0UwlRRMLnuacgWsY8","title":"Skip Login Screen and Direct Users to Enterprise Login","pathname":"/faq-for-authentication/how-to-use-social-enterprise-login-providers-without-authui","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to take users directly to an external OAuth provider's authorization page without opening AuthUI login page.","breadcrumbs":[{"label":"FAQ for Authentication"}]},{"id":"XvsURiy0JDO7KX6zqIX2","title":"Use the OAuth 2.0 State Parameter","pathname":"/faq-for-authentication/how-to-use-the-oauth-2.0-state-parameter","siteSpaceId":"sitesp_5Z0MS","description":"Reference on what the OAuth 2.0 parameter is and how to use it in Authgear SDK.","breadcrumbs":[{"label":"FAQ for Authentication"}]},{"id":"-MfehDTdoGvYFXK6dbhR","title":"Local Dev Setup for Connecting to Authgear SaaS in Cookie-based Auth","pathname":"/faq-for-authentication/local-cookie-based-web-setup","siteSpaceId":"sitesp_5Z0MS","description":"Setting up the local development environment for websites that use cookie-based authentication.","breadcrumbs":[{"label":"FAQ for Authentication"}]},{"id":"ORk0DLqCPvov5PBN2sxR","title":"User Profiles","pathname":"/integration/user-profiles","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Integration"}]},{"id":"BNKQ8Nlxj6uK5OkY3iQK","title":"What is User Profile","pathname":"/integration/user-profiles/user-profile","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Integration"},{"label":"User Profiles"}]},{"id":"T8YxCS3ni3NsqCEAH0pK","title":"Access User Profiles","pathname":"/integration/user-profiles/access-user-profiles","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to access User Profiles","breadcrumbs":[{"label":"Integration"},{"label":"User Profiles"}]},{"id":"4mX8Gl7Kqc7ZQQkoCyGN","title":"Update User Profiles","pathname":"/integration/user-profiles/update-user-profiles","siteSpaceId":"sitesp_5Z0MS","description":"Guide on the different ways you can modify the profiles of the users of your application.","breadcrumbs":[{"label":"Integration"},{"label":"User Profiles"}]},{"id":"KfcEQG8yh5DpEb0xiFfe","title":"Profile Custom Attributes","pathname":"/integration/user-profiles/profile-custom-attributes","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to add custom attributes to user profiles and manage existing custom attributes","breadcrumbs":[{"label":"Integration"},{"label":"User Profiles"}]},{"id":"bACENL7i4YyOlMS9NL5E","title":"Update user profile on sign-up using Hooks","pathname":"/integration/user-profiles/update-user-profile-on-sign-up-using-hooks","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to update a User profile's custom attributes on sign-up using Hooks","breadcrumbs":[{"label":"Integration"},{"label":"User Profiles"}]},{"id":"QDvzoUCsTeqNGP7TJ3aL","title":"Add custom fields to a JWT Access Token or ID Token","pathname":"/integration/user-profiles/add-custom-fields-to-a-jwt-access-token","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to add custom attributes to a JWT Access Token or ID Token using Authgear","breadcrumbs":[{"label":"Integration"},{"label":"User Profiles"}]},{"id":"CG4JXAmI0CsVCueKCxSx","title":"Mobile Apps","pathname":"/integration/mobile-apps","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to integrate Authgear with mobile apps using SDKs and advanced configurations","breadcrumbs":[{"label":"Integration"}]},{"id":"-Mj8Y1oAhH7-FL0y4tol","title":"Force authentication on app launch","pathname":"/integration/mobile-apps/force-authentication-on-app-launch","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Integration"},{"label":"Mobile Apps"}]},{"id":"LluSBuPDQab4Jrb3FK4I","title":"Customize the Login Pop-up / Disable the login alert box","pathname":"/integration/mobile-apps/using-webview-to-open-the-authgear-ui","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to switch between ASWebAuthenticationSession/Custom Tabs to WebKitWebView using Authgear Mobile SDKs.","breadcrumbs":[{"label":"Integration"},{"label":"Mobile Apps"}]},{"id":"w4CPLajR26eBlu1enOXd","title":"Integration with other Software","pathname":"/integration/integration-with-other-software","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Integration"}]},{"id":"Dpz8umbkMvALNPJdurcb","title":"Authgear and Supabase","pathname":"/integration/integration-with-other-software/authgear-supabase","siteSpaceId":"sitesp_5Z0MS","description":"Guide on using Authgear together with Supabase database to deliver a secure and scalable application","breadcrumbs":[{"label":"Integration"},{"label":"Integration with other Software"}]},{"id":"kCNO7xRCb24s0bzP9VCR","title":"Authgear and Firebase","pathname":"/integration/integration-with-other-software/authgear-firebase","siteSpaceId":"sitesp_5Z0MS","description":"Guide on how to use Authgear to secure Firebase services","breadcrumbs":[{"label":"Integration"},{"label":"Integration with other Software"}]},{"id":"2T5ZGqjM4P3mg6tvnfz2","title":"Integrate with Google Tag Manager","pathname":"/integration/integration-with-other-software/user-analytics-by-google-tag-manager","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to integrate popular analytics and tracking tools into your Authgear project using Google Tag Manager","breadcrumbs":[{"label":"Integration"},{"label":"Integration with other Software"}]},{"id":"IFapCeddlfrkWHN9wgL3","title":"FAQ for Integration","pathname":"/integration/faq-for-integration","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Integration"}]},{"id":"Ybrj3PKyvGwwjJCnCqKq","title":"How to Track User Before and After Signup?","pathname":"/integration/faq-for-integration/track-user-before-and-after-signup","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to track a user that signs up from a particular source or campaign.","breadcrumbs":[{"label":"Integration"},{"label":"FAQ for Integration"}]},{"id":"di5rj1ak24wRD17Fx07Y","title":"What happens with user directly access the Authgear Endpoint?","pathname":"/integration/faq-for-integration/directly-accessing-authgear-endpoint","siteSpaceId":"sitesp_5Z0MS","description":"Endpoint Direct Access lets you configure what happens when users unexpectedly access your Authgear project endpoint without using OIDC/SDK/SAML.","breadcrumbs":[{"label":"Integration"},{"label":"FAQ for Integration"}]},{"id":"C4dpcoQ3NbWzOzVUKXdu","title":"Built-in UI","pathname":"/customization/built-in-ui","siteSpaceId":"sitesp_5Z0MS","description":"Authgear lets you customize your users’ entire authentication experience","breadcrumbs":[{"label":"Customization"}]},{"id":"-MdQY3jNoOx1oNBrteKJ","title":"Branding in Auth UI","pathname":"/customization/built-in-ui/branding","siteSpaceId":"sitesp_5Z0MS","description":"Customize the look and feel of Authgear to match your branding","breadcrumbs":[{"label":"Customization"},{"label":"Built-in UI"}]},{"id":"-MbjCfqtxI_Bs-rBIMd_","title":"User Settings","pathname":"/customization/built-in-ui/user-settings","siteSpaceId":"sitesp_5Z0MS","description":"Authgear offers prebuilt frontends for essential authentication features, including user settings pages.","breadcrumbs":[{"label":"Customization"},{"label":"Built-in UI"}]},{"id":"-MNNE6Pzkwqj8FsfTOd5","title":"Privacy Policy & Terms of Service Links","pathname":"/customization/built-in-ui/privacy-policy-terms-of-service","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Customization"},{"label":"Built-in UI"}]},{"id":"-MdQUQF6yVAsHJ51r5KZ","title":"Customer Support Link","pathname":"/customization/built-in-ui/customer-support-link","siteSpaceId":"sitesp_5Z0MS","description":"Let end-user to contact customer support in case they need help in the login process.","breadcrumbs":[{"label":"Customization"},{"label":"Built-in UI"}]},{"id":"zZsXA3uypmIeWYQweUuD","title":"Custom Text","pathname":"/customization/built-in-ui/localization","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Customization"},{"label":"Built-in UI"}]},{"id":"00EsDB4pxnMmowGUZBMW","title":"Languages and Localization","pathname":"/customization/built-in-ui/languages-and-localization","siteSpaceId":"sitesp_5Z0MS","description":"Change the default language for your Authgear project.","breadcrumbs":[{"label":"Customization"},{"label":"Built-in UI"}]},{"id":"QuQP4wQAMhHjbsQ6yegR","title":"Custom UI","pathname":"/customization/custom-ui","siteSpaceId":"sitesp_5Z0MS","description":"Resources about setting up your own custom User Interface for Login, Signup, Account recovery and more.","breadcrumbs":[{"label":"Customization"}]},{"id":"bh9jTI1HfOss0Ga6QOXo","title":"Authentication Flow API","pathname":"/customization/custom-ui/authentication-flow-api","siteSpaceId":"sitesp_5Z0MS","description":"Learn about what the Authentication Flow API is and how to use it to implement your own custom user interface (UI) for authentication.","breadcrumbs":[{"label":"Customization"},{"label":"Custom UI"}]},{"id":"o7crbElU3llCeleh5K9w","title":"Implement Authentication Flow API using Express","pathname":"/customization/custom-ui/implement-authentication-flow-api-using-express","siteSpaceId":"sitesp_5Z0MS","description":"This post provides a simple guide for implementing a custom email + password login and signup pages using Authentication Flow API and Express.","breadcrumbs":[{"label":"Customization"},{"label":"Custom UI"}]},{"id":"He7jrk5pGyIal720Wguq","title":"Implement Authentication Flow API using PHP","pathname":"/customization/custom-ui/implement-authentication-flow-api-using-php","siteSpaceId":"sitesp_5Z0MS","description":"This guide shows how to setup custom login and signup pages using Authentication flow API.","breadcrumbs":[{"label":"Customization"},{"label":"Custom UI"}]},{"id":"riCnWMQbTVvEYPkPMMEg","title":"Add Custom Login/Signup UI to Native Apps","pathname":"/customization/custom-ui/add-custom-login-signup-ui-to-native-apps","siteSpaceId":"sitesp_5Z0MS","description":"This guide shows how to use Custom Login/Signup pages UI in Native Apps","breadcrumbs":[{"label":"Customization"},{"label":"Custom UI"}]},{"id":"3BJcM7wSGfocpInurguW","title":"Manually Link OAuth Provider using Account Management API","pathname":"/customization/custom-ui/manually-link-oauth-provider-using-account-management-api","siteSpaceId":"sitesp_5Z0MS","description":"Use the Account Management API to link OAuth provider.","breadcrumbs":[{"label":"Customization"},{"label":"Custom UI"}]},{"id":"NtSatGAwv60Qt9JPWWmh","title":"Implement a custom account recovery UI using Authentication Flow API","pathname":"/customization/custom-ui/implement-a-custom-account-recovery-ui-using-authentication-flow-api","siteSpaceId":"sitesp_5Z0MS","description":"Guide on how to implement your own account recovery UI powered by the Authentication Flow API","breadcrumbs":[{"label":"Customization"},{"label":"Custom UI"}]},{"id":"BLuoaBpssOBGZNh2MDAl","title":"Single Sign-On Continuation with Custom UI","pathname":"/customization/custom-ui/single-sign-on-continuation-with-custom-ui","siteSpaceId":"sitesp_5Z0MS","description":"Let users who already have an active Authgear session continue as their existing account in your Custom UI, without re-entering their credentials.","breadcrumbs":[{"label":"Customization"},{"label":"Custom UI"}]},{"id":"-Mf6h1AzUFc19C5OIo__","title":"Custom Domain","pathname":"/customization/custom-domain","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Customization"}]},{"id":"vriSZRAXpMla8hfat9Jy","title":"Custom Email and SMS Templates","pathname":"/customization/custom-email-and-sms-templates","siteSpaceId":"sitesp_5Z0MS","description":"Modify the template for emails and SMS messages for your Authgear project.","breadcrumbs":[{"label":"Customization"}]},{"id":"-Mfm3C_gb_y5BLcx8ke6","title":"Custom Email Provider","pathname":"/customization/custom-email-provider","siteSpaceId":"sitesp_5Z0MS","description":"Optimize for email deliverability by using your own SMTP server to send Authgear Emails (such as forgot password, verifications) in your own domains.","breadcrumbs":[{"label":"Customization"}]},{"id":"RcNFTBACdKtHQpixIXMQ","title":"Custom SMS Provider","pathname":"/customization/custom-sms-provider","siteSpaceId":"sitesp_5Z0MS","description":"Guides for changing the default SMS provider to your own custom provider","breadcrumbs":[{"label":"Customization"}]},{"id":"ME7UXnDzfnis95aMVBsi","title":"Twilio","pathname":"/customization/custom-sms-provider/twilio","siteSpaceId":"sitesp_5Z0MS","description":"Use custom Twilio account as SMS provider for communication with the users.","breadcrumbs":[{"label":"Customization"},{"label":"Custom SMS Provider"}]},{"id":"T4l3QTGPe0NQgak9dE0M","title":"Webhook/Custom Script","pathname":"/customization/custom-sms-provider/webhook-custom-script","siteSpaceId":"sitesp_5Z0MS","description":"Connect with any SMS providers with webhook or custom scripts for communication with the users.","breadcrumbs":[{"label":"Customization"},{"label":"Custom SMS Provider"}]},{"id":"2qsDQNTNklW6AVRLRKKA","title":"Events and Hooks","pathname":"/customization/events-hooks","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Customization"}]},{"id":"7goLkppzd0Dr8AfQP6Jr","title":"Blocking Events","pathname":"/customization/events-hooks/blocking-events","siteSpaceId":"sitesp_5Z0MS","description":"Blocking events are triggered before the operation is performed.","breadcrumbs":[{"label":"Customization"},{"label":"Events and Hooks"}]},{"id":"AQMhM7zFwNc8xsoS3MR0","title":"Non-blocking Events","pathname":"/customization/events-hooks/non-blocking-events","siteSpaceId":"sitesp_5Z0MS","description":"Non-blocking events are delivered asynchronously after the operation is performed.","breadcrumbs":[{"label":"Customization"},{"label":"Events and Hooks"}]},{"id":"6rI0nQo8sKDunkVC0zP0","title":"JavaScript / TypeScript Hooks","pathname":"/customization/events-hooks/denohooks","siteSpaceId":"sitesp_5Z0MS","description":"JavaScript / TypeScript Hooks is one of the supported hooks to receive events.","breadcrumbs":[{"label":"Customization"},{"label":"Events and Hooks"}]},{"id":"S6D23nSxWyBSZOI0P2Fd","title":"Webhooks","pathname":"/customization/events-hooks/webhooks","siteSpaceId":"sitesp_5Z0MS","description":"Use Webhooks for your Authgear project","breadcrumbs":[{"label":"Customization"},{"label":"Events and Hooks"}]},{"id":"Dw7n1bsRWzL1saUg60Xq","title":"AMR (Authentication Method Reference)","pathname":"/customization/events-hooks/amr","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Customization"},{"label":"Events and Hooks"}]},{"id":"SX5mQwsKAEoqTO85Pf2z","title":"Examples: Common Use Cases","pathname":"/customization/events-hooks/examples-common-use-cases","siteSpaceId":"sitesp_5Z0MS","description":"Common usage of events and hooks to modify the behavior of an authentication on Authgear","breadcrumbs":[{"label":"Customization"},{"label":"Events and Hooks"}]},{"id":"p6eb4NEgy8YKXexqxtvH","title":"Monitor","pathname":"/admin-and-operations/monitor","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Admin & Operations"}]},{"id":"83ujfObB7Kio4Dq6ZbID","title":"Audit Log For Users Activities","pathname":"/admin-and-operations/monitor/audit-log","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Admin & Operations"},{"label":"Monitor"}]},{"id":"nN9BMGZLyDZY8cZJjxAj","title":"Audit Log for Admin API and Portal","pathname":"/admin-and-operations/monitor/audit-log-for-admin-api-and-portal","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Admin & Operations"},{"label":"Monitor"}]},{"id":"xZRtbQj09H1Ftx23MLhY","title":"Analytics","pathname":"/admin-and-operations/monitor/analytics","siteSpaceId":"sitesp_5Z0MS","description":"See information about the total number users and active users on your Authgear project","breadcrumbs":[{"label":"Admin & Operations"},{"label":"Monitor"}]},{"id":"fpsQ4BNZDIocNBCzk3XJ","title":"User Management","pathname":"/admin-and-operations/user-management","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Admin & Operations"}]},{"id":"g4bmj0mZYOsvTJoTHYau","title":"Account Deletion","pathname":"/admin-and-operations/user-management/account-deletion","siteSpaceId":"sitesp_5Z0MS","description":"Allow end-users to initiate account deletion within the apps.","breadcrumbs":[{"label":"Admin & Operations"},{"label":"User Management"}]},{"id":"IIQIgKh3tbCKZomxUtaX","title":"Import Users using User Import API","pathname":"/admin-and-operations/user-management/import-users-using-user-import-api","siteSpaceId":"sitesp_5Z0MS","description":"Use the user import API to bulk import users from external systems to your Authgear project","breadcrumbs":[{"label":"Admin & Operations"},{"label":"User Management"}]},{"id":"LyndQS4hjRW1PH9xi7Qk","title":"Export Users using the User Export API","pathname":"/admin-and-operations/user-management/export-users-using-the-user-export-api","siteSpaceId":"sitesp_5Z0MS","description":"Export users from your project into a CSV or JSON file","breadcrumbs":[{"label":"Admin & Operations"},{"label":"User Management"}]},{"id":"puzr45aBNHCk1WHQkJ5f","title":"Manage Users Roles and Groups","pathname":"/admin-and-operations/user-management/manage-users-roles-and-groups","siteSpaceId":"sitesp_5Z0MS","description":"Define and manage roles and groups that you can apply to your users","breadcrumbs":[{"label":"Admin & Operations"},{"label":"User Management"}]},{"id":"fVUnTwpfglPCRkbDlaqX","title":"Disable User","pathname":"/admin-and-operations/user-management/disable-user","siteSpaceId":"sitesp_5Z0MS","description":"Temporarily or permanently suspend a user’s ability to log in and use the system","breadcrumbs":[{"label":"Admin & Operations"},{"label":"User Management"}]},{"id":"ESRO0tlHCN2n6LYUMA6H","title":"Account Valid Period","pathname":"/admin-and-operations/user-management/account-valid-period","siteSpaceId":"sitesp_5Z0MS","description":"Use account valid period to manage temporary access","breadcrumbs":[{"label":"Admin & Operations"},{"label":"User Management"}]},{"id":"2BXpoj5TL4J6jzJ9c0Wq","title":"Migration","pathname":"/admin-and-operations/migration","siteSpaceId":"sitesp_5Z0MS","description":"Strategy for migrating from another auth provider to Authgear.","breadcrumbs":[{"label":"Admin & Operations"}]},{"id":"XjhoZLdWd0nzu5mAuHLy","title":"Bulk migration","pathname":"/admin-and-operations/migration/bulk-migration","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Admin & Operations"},{"label":"Migration"}]},{"id":"17QlHc3dJSTFUfqaeTDI","title":"Rolling migration","pathname":"/admin-and-operations/migration/rolling-migration","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Admin & Operations"},{"label":"Migration"}]},{"id":"c5azWGDrW4a34llSBfEa","title":"Zero-downtime migration","pathname":"/admin-and-operations/migration/zero-downtime-migration","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Admin & Operations"},{"label":"Migration"}]},{"id":"OsDRDpPf9ytoLfZU2gO2","title":"Brute-force Protection","pathname":"/security/brute-force-protection","siteSpaceId":"sitesp_5Z0MS","description":"Account Lockout Policy safeguards attacks towards a user account from brute-force login attempts","breadcrumbs":[{"label":"Security"}]},{"id":"HQymTVvB9HYahOVfgpg4","title":"Bot Protection","pathname":"/security/bot-protection","siteSpaceId":"sitesp_5Z0MS","description":"Use bot protection tools to block automated attackers","breadcrumbs":[{"label":"Security"}]},{"id":"HZbC3NfhQwCbML7LQSso","title":"Fraud Protection","pathname":"/security/fraud-protection","siteSpaceId":"sitesp_5Z0MS","description":"Detect and stop fraudulent traffic such as SMS pumping before it drives up your messaging costs.","breadcrumbs":[{"label":"Security"}]},{"id":"FKQ2qShtXhljjF8Hl5Wh","title":"IP Blocklist","pathname":"/security/ip-blocklist","siteSpaceId":"sitesp_5Z0MS","description":"IP Blocklist allows you to block incoming traffic based on IP addresses or geographic regions.","breadcrumbs":[{"label":"Security"}]},{"id":"-MMz9Jo4Fej4A1KAB3WU","title":"Non-HTTP scheme redirect URI","pathname":"/security/redirect-uri","siteSpaceId":"sitesp_5Z0MS","description":"Implication of using non-HTTP scheme in redirect URI.","breadcrumbs":[{"label":"Security"}]},{"id":"W76DJHbIcobLbeXOamw8","title":"Sender Constraining","pathname":"/security/sender-constraining","siteSpaceId":"sitesp_5Z0MS","description":"Sender constrain refresh tokens in Authgear","breadcrumbs":[{"label":"Security"}]},{"id":"iGo5drqVFoxJENnQGaY6","title":"APIs","pathname":"/reference/apis","siteSpaceId":"sitesp_5Z0MS","description":"Authgear exposes APIs for developers to manage their applications programmatically","breadcrumbs":[{"label":"Reference"}]},{"id":"-MIYNt0W2zOJ7kyh3ELv","title":"Admin API","pathname":"/reference/apis/admin-api","siteSpaceId":"sitesp_5Z0MS","description":"The Admin API allows your server to manage users via a GraphQL endpoint.","breadcrumbs":[{"label":"Reference"},{"label":"APIs"}]},{"id":"7JLC4nPM02yI1pBUTVUF","title":"Authentication and Security","pathname":"/reference/apis/admin-api/authentication-and-security","siteSpaceId":"sitesp_5Z0MS","description":"The Admin API is protected by cryptographic keys. Learn how to generate a valid JWT to authorize your request in this article.","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"Admin API"}]},{"id":"1rc0ms4aPMzzq8ri6zlD","title":"API Schema","pathname":"/reference/apis/admin-api/api-schema","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"Admin API"}]},{"id":"k9OsUIA7hmhGI2gB4Ilq","title":"API Queries and Mutations","pathname":"/reference/apis/admin-api/api-queries-and-mutations","siteSpaceId":"sitesp_5Z0MS","description":"In this section of the Authgear documentation, you'll learn about all the GraphQL queries and mutations the Admin API supports.","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"Admin API"}]},{"id":"R4kJ8fBRLZrQb7Y6y6Ft","title":"Using global node IDs","pathname":"/reference/apis/admin-api/using-global-node-ids","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"Admin API"}]},{"id":"gWOdivVvaMRWgQBtyovb","title":"Retrieving users using Admin API","pathname":"/reference/apis/admin-api/retrieving-users-using-admin-api","siteSpaceId":"sitesp_5Z0MS","description":"Overview and examples for the getUser/getUsers queries","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"Admin API"}]},{"id":"E6nXEEROK7hy9dEMkUIx","title":"API Examples","pathname":"/reference/apis/admin-api/api-examples","siteSpaceId":"sitesp_5Z0MS","description":"Learn how to perform common actions from the examples","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"Admin API"}]},{"id":"0S9z7XG5vraK3ofA8JqO","title":"Generate OTP code","pathname":"/reference/apis/admin-api/api-examples/generate-otp-code","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"Admin API"},{"label":"API Examples"}]},{"id":"4jbNYONDGUwXQH7NFmN0","title":"Search for users","pathname":"/reference/apis/admin-api/api-examples/search-for-users","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"Admin API"},{"label":"API Examples"}]},{"id":"li5qA139VebgACS0hvUa","title":"Update user's picture","pathname":"/reference/apis/admin-api/api-examples/update-users-picture","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"Admin API"},{"label":"API Examples"}]},{"id":"vggn7VGRqeorypPIpKHA","title":"Update user's standard attributes","pathname":"/reference/apis/admin-api/api-examples/update-users-standard-attributes","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"Admin API"},{"label":"API Examples"}]},{"id":"nsk1v8G0R0wy27kc9zq3","title":"Authentication Flow API","pathname":"/reference/apis/authentication-flow-api","siteSpaceId":"sitesp_5Z0MS","description":"API reference detailing all endpoints, inputs and results supported by the Authentication Flow API.","breadcrumbs":[{"label":"Reference"},{"label":"APIs"}]},{"id":"OUgI3ikOasP4IFbedFTy","title":"OAuth 2.0 and OpenID Connect (OIDC)","pathname":"/reference/apis/oauth-2.0-and-openid-connect-oidc","siteSpaceId":"sitesp_5Z0MS","description":"Reference for configurations and endpoints in the industry-standard protocols OAuth 2.0 or OpenID Connect.","breadcrumbs":[{"label":"Reference"},{"label":"APIs"}]},{"id":"HUBZzycWqWU3Vwow6kd6","title":"Supported Scopes","pathname":"/reference/apis/oauth-2.0-and-openid-connect-oidc/supported-scopes","siteSpaceId":"sitesp_5Z0MS","description":"Details about the OAuth 2.0 Scopes Authgear supports","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"OAuth 2.0 and OpenID Connect (OIDC)"}]},{"id":"V6H82VuHYhryj6UYviJz","title":"UserInfo","pathname":"/reference/apis/oauth-2.0-and-openid-connect-oidc/userinfo","siteSpaceId":"sitesp_5Z0MS","description":"Complete list of information in the UserInfo endpoint response.","breadcrumbs":[{"label":"Reference"},{"label":"APIs"},{"label":"OAuth 2.0 and OpenID Connect (OIDC)"}]},{"id":"pzmXW4l9G1tqRn3edVKi","title":"User Import API","pathname":"/reference/apis/user-import-api","siteSpaceId":"sitesp_5Z0MS","description":"API Reference for the  User Import API that developers can use to bulk import users from another system to their Authgear project.","breadcrumbs":[{"label":"Reference"},{"label":"APIs"}]},{"id":"kysbTgiYHQYX2ymctcn1","title":"User Export API","pathname":"/reference/apis/user-export-api","siteSpaceId":"sitesp_5Z0MS","description":"API Reference for the User Export API","breadcrumbs":[{"label":"Reference"},{"label":"APIs"}]},{"id":"8wpr3WP0iwkZvbLWoQy9","title":"Tokens","pathname":"/reference/tokens","siteSpaceId":"sitesp_5Z0MS","description":"Description of what's in Authgear's JWT access token and UserInfo endpoint response.","breadcrumbs":[{"label":"Reference"}]},{"id":"X9K86FdtBnV15lLZZ7MI","title":"JWT Access Token","pathname":"/reference/tokens/jwt-access-token","siteSpaceId":"sitesp_5Z0MS","description":"Claims in JWT Access Token","breadcrumbs":[{"label":"Reference"},{"label":"Tokens"}]},{"id":"BUvPRlhhQffnGYGj953U","title":"Refresh Token","pathname":"/reference/tokens/refresh-token","siteSpaceId":"sitesp_5Z0MS","description":"Learn about refresh token, how to get a refresh token and how to use it to get a new access token.","breadcrumbs":[{"label":"Reference"},{"label":"Tokens"}]},{"id":"LhSPW29FkjYbiBSUdtal","title":"M2M Tokens","pathname":"/reference/tokens/m2m-tokens","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Reference"},{"label":"Tokens"}]},{"id":"tMfm1054zaeO3dXanWhH","title":"Rate Limits","pathname":"/reference/rate-limits","siteSpaceId":"sitesp_5Z0MS","description":"Learn about the rate limits for different services and resources.","breadcrumbs":[{"label":"Reference"}]},{"id":"PVG77k76NyOo3kUDjvG0","title":"Account Lockout","pathname":"/reference/rate-limits/account-lockout","siteSpaceId":"sitesp_5Z0MS","description":"Learn about default way account lockout works, and how to customise lockout limits","breadcrumbs":[{"label":"Reference"},{"label":"Rate Limits"}]},{"id":"Q4Ju8lYpyZ0iywMfXkQL","title":"Glossary","pathname":"/reference/glossary","siteSpaceId":"sitesp_5Z0MS","description":"Definitions of the most common technical terms you will come across while working with Authgear and implementing user authentication to your application.","breadcrumbs":[{"label":"Reference"}]},{"id":"vETcDdur3H4aGAGMoV8H","title":"Billing FAQ","pathname":"/reference/billing-faq","siteSpaceId":"sitesp_5Z0MS","description":"Frequently asked questions on how billing works on Authgear","breadcrumbs":[{"label":"Reference"}]},{"id":"aRj42dAjyxprqH3wm5jv","title":"What is Authgear ONCE","pathname":"/authgear-once/what-is-authgear-once","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Authgear ONCE"}]},{"id":"82tM6WwrmQzaJw9RNHad","title":"Install Authgear ONCE on a VM","pathname":"/authgear-once/install-authgear-once-on-a-vm","siteSpaceId":"sitesp_5Z0MS","description":"General guide on installing Authgear ONCE","breadcrumbs":[{"label":"Authgear ONCE"}]},{"id":"qOKfvpbt9HUCL4COldyz","title":"Install Authgear ONCE on Amazon Web Services (AWS)","pathname":"/authgear-once/install-authgear-once-on-amazon-web-services-aws","siteSpaceId":"sitesp_5Z0MS","description":"Guide on how to install Authgear ONCE on an AWS EC2 Instance","breadcrumbs":[{"label":"Authgear ONCE"}]},{"id":"0mgfqBSUmX3a7EXP57pL","title":"Install Authgear ONCE on Vultr","pathname":"/authgear-once/install-authgear-once-on-vultr","siteSpaceId":"sitesp_5Z0MS","description":"Step-by-step guide for installing Authgear ONCE on Vultr VM","breadcrumbs":[{"label":"Authgear ONCE"}]},{"id":"7sLKKPdktJ5O1sHRfRFJ","title":"Identity Fundamentals","pathname":"/concepts/identity-fundamentals","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Concepts"}]},{"id":"AFXhthRxGdEEe5gcUkcg","title":"Authgear use cases","pathname":"/concepts/authgear-use-cases","siteSpaceId":"sitesp_5Z0MS","description":"Take a look at just a few of Authgear's use cases","breadcrumbs":[{"label":"Concepts"}]},{"id":"-MGbwMD0FWWMIdiicMCE","title":"User, Identity and Authenticator","pathname":"/concepts/user-identity-and-authenticator","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Concepts"}]},{"id":"c4clmqzHxcQ02HVuiR96","title":"Deploy with Helm chart","pathname":"/deployment/helm","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Deployment"}]},{"id":"-MbFM4k4_n1lZmQDiKK-","title":"Authenticating HTTP request with Nginx","pathname":"/deployment/auth-nginx","siteSpaceId":"sitesp_5Z0MS","description":"How to authenticate HTTP request with Nginx","breadcrumbs":[{"label":"Deployment"}]},{"id":"-MAjbj-c410dF1jCH8i4","title":"Run locally with Docker Compose","pathname":"/deployment/local","siteSpaceId":"sitesp_5Z0MS","description":"How to run Authgear locally with Docker Compose.","breadcrumbs":[{"label":"Deployment"}]},{"id":"-MAjbj-gRTwkBg2-hNX_","title":"Configuration","pathname":"/deployment/configuration","siteSpaceId":"sitesp_5Z0MS","description":"How Authgear is configured","breadcrumbs":[{"label":"Deployment"}]},{"id":"-MAjbj-hbHpF2I7T8dkM","title":"Environment Variables","pathname":"/deployment/configuration/env","siteSpaceId":"sitesp_5Z0MS","description":"Environment variables provides global configuration","breadcrumbs":[{"label":"Deployment"},{"label":"Configuration"}]},{"id":"5JcessnNNHrhpw20BBHo","title":"authgear.yaml","pathname":"/deployment/configuration/authgear.yaml","siteSpaceId":"sitesp_5Z0MS","description":"This is the main configuration file affecting every aspect of Authgear.","breadcrumbs":[{"label":"Deployment"},{"label":"Configuration"}]},{"id":"7HUdrhGSk5Fy2jgbvyQE","title":"authgear.secrets.yaml","pathname":"/deployment/configuration/authgear.secrets.yaml","siteSpaceId":"sitesp_5Z0MS","description":"This is the configuration file containing various secrets used in Authgear.","breadcrumbs":[{"label":"Deployment"},{"label":"Configuration"}]},{"id":"zXFv6umFMWXUEB2dVvHn","title":"Architecture Guides","pathname":"/deployment/architecture-guides","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Deployment"}]},{"id":"lp9oPxRf6qNC1Wjm3C8I","title":"AWS Reference Architecture","pathname":"/deployment/architecture-guides/aws-reference-architecture","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Deployment"},{"label":"Architecture Guides"}]},{"id":"jn8xCu4JaOT2iwM5cGGy","title":"Azure Reference Architecture","pathname":"/deployment/architecture-guides/azure-reference-architecture","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Deployment"},{"label":"Architecture Guides"}]},{"id":"u3rMb49nGtHbozDw4KNw","title":"Google Cloud Reference Architecture","pathname":"/deployment/architecture-guides/google-cloud-reference-architecture","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Deployment"},{"label":"Architecture Guides"}]},{"id":"7KrXwiA9st2oMRZv6Fou","title":"K8S Cluster Reference Architecture","pathname":"/deployment/architecture-guides/on-premises-reference-architecture","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Deployment"},{"label":"Architecture Guides"}]},{"id":"zmVMn79kZDJRJqnZC1wd","title":"Docker Compose Reference Architecture","pathname":"/deployment/architecture-guides/docker-compose-reference-architecture","siteSpaceId":"sitesp_5Z0MS","description":"Highly available reference architecture for running Authgear on virtual machines with Docker Compose or Podman Compose.","breadcrumbs":[{"label":"Deployment"},{"label":"Architecture Guides"}]},{"id":"hdpUk6wuMXWa4C57By2d","title":"Throughput Scaling Reference","pathname":"/deployment/architecture-guides/throughput-scaling-reference","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Deployment"},{"label":"Architecture Guides"}]},{"id":"JN1f5QAq1TJVBQ9o1aHb","title":"How to Fix SubtleCrypto: digest() undefined Error in Authgear SDK","pathname":"/troubleshooting/how-to-fix-subtlecrypto-digest-undefined-error-in-authgear-sdk","siteSpaceId":"sitesp_5Z0MS","description":"Guide on how to fix SubtleCrypto: digest() non-HTTPS/Secure context Error in Authgear SDK","breadcrumbs":[{"label":"Troubleshooting"}]},{"id":"NmQv5yhJfp5iO6vYH5DC","title":"How to Fix CORS Error","pathname":"/troubleshooting/how-to-fix-cors-error","siteSpaceId":"sitesp_5Z0MS","description":"","breadcrumbs":[{"label":"Troubleshooting"}]}]}