Like Auth0,
But Without the Subscription
Take control of your identity and access management with Authgear ONCE — a self-hosted IAM platform you own forever. No subscriptions, no surprises.
Remember When Software Was Yours?
All-In-One Identity Platform
Single Sign-On (SSO)
Passwordless Authentication & Passkeys
Two-Factor Authentication (2FA)
Pre-built User Management Portal
Advanced Security Measures
Build for Software Development Agencies
SDKs for Modern Frameworks
1import authgear from "@authgear/web";2 3const login = async () => {4 await authgear.startAuthentication({5 redirectURI: "https://www.myapps.com/auth-redirect"6 })7} 1import authgear from "@authgear/web";2 3const login = async () => {4 await authgear.startAuthentication({5 redirectURI: "https://www.myapps.com/auth-redirect"6 })7} 1import authgear from "@authgear/web";2 3startLogin(): void {4 authgear.startAuthentication({5 redirectURI: 'http://localhost:4000/auth-redirect'6 })7} 1import authgear from "@authgear/react-native";2 3const authenticate = useCallback(async () => {4 try {5 authgear.authenticate({6 redirectURI: 'com.authgear.example.rn://host/path',7 });8 } catch (error) {9 // Login failed10 }11}, []); 1import 'package:flutter_authgear/flutter_authgear.dart';2 3late Authgear _authgear;4UserInfo? _userInfo;5 6Future<void> _onPressedAuthenticate() async {7 try {8 final userInfo = await _authgear.authenticate(redirectURI: "com.example.authgeardemo.flutter://host/path");9 setState(() {10 _userInfo = userInfo;11 });12 } catch (e) {13 // Login failed14 } finally {15 // Finally16 }17} 1authgear.authenticate(redirectURI: "com.example.authgear://host/path", handler: { result in2 switch result {3 case let .success(userInfo):4 // login successfully5 loginState = authgear.sessionState6 userId = userInfo.sub7 case let .failure(error):8 if let authgearError = error as? AuthgearError, case .cancel = authgearError {9 // user cancel10 } else {11 // Something went wrong12 }13 }14}) 1fun startLogin() {2 val options = AuthenticateOptions("com.example.authgear://host/path")3 authgear.authenticate(options, object : OnAuthenticateListener {4 override fun onAuthenticated(userInfo: UserInfo) {5 // Login successfully6 }7 override fun onAuthenticationFailed(throwable: Throwable) {8 // Login failed9 }10 })11} System Requirements & Installation
Frequently Asked Questions
Yes! You can explore Authgear using the Free Tier of Authgear Cloud. While it includes limitations on application and project member counts and retains Authgear branding, all core features are available for testing.
2 years of continuous updates are included. It can be easily updated by a command, Authgear ONCE will ping our server to see if there is any updates and you can decide when to download and install them.
Discord support are provided. We are also happy to help with the basics over email: once@authgear.com
We offer an Import API for you to import users from an existing authentication system to Authgear ONCE. You can easily migrate from Auth0, Okta, PingIdentity. See our docs for more information.
With our comprehensive SDKs and documentation, most developers can implement Authgear ONCE in under 10 minutes.
With full data ownership through self-hosting, you maintain complete control over where and how customer identity data is stored, processed, and protected, making GDPR compliance straightforward.