SDKs & Compatible Client Libraries
SDKs & Compatible Client Libraries
Fabrixly IDS is a fully standards-compliant OpenID Connect 1.0 and OAuth 2.0 authorization server. This means any standard OIDC/OAuth 2.0 client library works with it out of the box — and we also provide official SDKs and CLI for easy integration!
To connect any library, you need the following from your Fabrixly IDS — choose between cloud SaaS or self-hosted:
| Config | Cloud SaaS Value | Self-hosted Value |
|---|---|---|
| Authority / Issuer URL | https://ids.fabrixly.com/oidc |
https://auth.yourdomain.com/oidc |
| Discovery Document | https://ids.fabrixly.com/oidc/.well-known/openid-configuration |
https://auth.yourdomain.com/oidc/.well-known/openid-configuration |
| JWKS Endpoint | https://ids.fabrixly.com/oidc/.well-known/jwks.json |
https://auth.yourdomain.com/oidc/.well-known/jwks.json |
| Client ID | Created via Fabrixly IDS Console → Clients | Created via your self-hosted Fabrixly IDS Console → Clients |
| Client Secret | For confidential clients only | For confidential clients only |
JavaScript / TypeScript
@fabrixly/sdk (Official)
Fabrixly's official Node.js SDK wraps both the management API (/api/*) and the OIDC endpoints (/oidc/*) behind a single, typed client.
npm install @fabrixly/sdk
The Two Authentication Models
Fabrixly IDS issues two different types of bearer tokens that are not interchangeable:
| Token | Obtained Via | Used For | Rejected By |
|---|---|---|---|
| User session JWT | sdk.login(email, password) |
All management endpoints (/api/*) |
/oidc/* |
| OIDC access token | sdk.loginClientCredentials() or OAuth authorization flows |
/oidc/* endpoints and your resource APIs |
/api/* |
Quick Start Example
import { FabrixlySDK } from '@fabrixly/sdk';
// 1. Management Model (uses user login JWT to manage users, orgs, etc.)
const sdk = new FabrixlySDK({ baseUrl: 'https://ids.fabrixly.com' });
const authResult = await sdk.login('admin@system.com', 'admin123');
// List users using management APIs
const users = await sdk.getUsers();
console.log('Users:', users);
// 2. Machine-to-Machine Model (uses client credentials to fetch OIDC access tokens)
const oidc = new FabrixlySDK({
baseUrl: 'https://ids.fabrixly.com',
clientId: 'your-client-id',
clientSecret: 'your-client-secret',
});
const token = await oidc.loginClientCredentials();
const tokenInfo = await oidc.introspectToken();
🔗 npmjs.com/package/@fabrixly/sdk
@fabrixly/cli (Official CLI)
We provide an official Command-Line Interface (fab) to manage your Fabrixly IDS resources, trigger authentication flows, and manage credentials directly from your terminal.
🔗 For detailed commands, authentication profiles, and output formatting, see the CLI Documentation.
oidc-client-ts
The most widely used OIDC client for browser-based apps. Framework-agnostic, supports Authorization Code + PKCE, silent token renewal, and session monitoring.
npm install oidc-client-ts
import { UserManager } from 'oidc-client-ts';
const userManager = new UserManager({
// For Cloud SaaS
authority: 'https://ids.fabrixly.com/oidc',
// For Self-hosted
// authority: 'https://auth.yourdomain.com/oidc',
client_id: 'your-client-id',
redirect_uri: 'https://app.yourdomain.com/callback',
scope: 'openid profile email',
});
// Login
await userManager.signinRedirect();
// Handle callback
const user = await userManager.signinRedirectCallback();
// Get current user
const user = await userManager.getUser();
🔗 npmjs.com/package/oidc-client-ts
openid-client (Node.js)
The gold-standard OIDC/OAuth 2.0 client for Node.js. Used server-side for token verification, introspection, client credentials, and all OAuth flows.
npm install openid-client
import { discovery, fetchUserInfo, clientCredentialsGrant } from 'openid-client';
// Auto-discover Fabrixly IDS endpoints
const config = await discovery(
// For Cloud SaaS
new URL('https://ids.fabrixly.com/oidc'),
// For Self-hosted
// new URL('https://auth.yourdomain.com/oidc'),
'your-client-id',
'your-client-secret'
);
// Client Credentials (M2M)
const tokens = await clientCredentialsGrant(config, { scope: 'api:read' });
🔗 npmjs.com/package/openid-client
React
react-oidc-context
A React context wrapper around oidc-client-ts. Provides useAuth() hook, <AuthProvider>, and <AuthConsumer> components.
npm install oidc-client-ts react-oidc-context
import { AuthProvider, useAuth } from 'react-oidc-context';
const oidcConfig = {
// For Cloud SaaS
authority: 'https://ids.fabrixly.com/oidc',
// For Self-hosted
// authority: 'https://auth.yourdomain.com/oidc',
client_id: 'your-client-id',
redirect_uri: 'https://app.yourdomain.com/callback',
};
// Wrap your app
<AuthProvider {...oidcConfig}>
<App />
</AuthProvider>
// Inside any component
function App() {
const auth = useAuth();
if (auth.isLoading) return <div>Loading...</div>;
if (!auth.isAuthenticated) return <button onClick={auth.signinRedirect}>Login</button>;
return <p>Hello {auth.user?.profile.name}</p>;
}
🔗 npmjs.com/package/react-oidc-context
Next.js
Auth.js (NextAuth v5)
The most popular auth library for Next.js. Supports any OIDC provider via a custom provider config pointing to Fabrixly IDS.
npm install next-auth
// auth.ts
import NextAuth from 'next-auth';
export const { handlers, signIn, signOut, auth } = NextAuth({
providers: [
{
id: 'fabrixly-ids',
name: 'Fabrixly IDS',
type: 'oidc',
// For Cloud SaaS
issuer: 'https://ids.fabrixly.com/oidc',
// For Self-hosted
// issuer: 'https://auth.yourdomain.com/oidc',
clientId: process.env.FABRIXLY_CLIENT_ID,
clientSecret: process.env.FABRIXLY_CLIENT_SECRET,
// Fabrixly IDS UserInfo endpoint is /oidc/me — override required
userinfo: 'https://ids.fabrixly.com/oidc/me', // Cloud
// userinfo: 'https://auth.yourdomain.com/oidc/me', // Self-hosted
},
],
});
Angular
angular-oauth2-oidc
The most popular OIDC library for Angular apps. Supports Authorization Code + PKCE, silent refresh, and session checks.
npm install angular-oauth2-oidc
import { OAuthModule, AuthConfig } from 'angular-oauth2-oidc';
export const authConfig: AuthConfig = {
// For Cloud SaaS
issuer: 'https://ids.fabrixly.com/oidc',
// For Self-hosted
// issuer: 'https://auth.yourdomain.com/oidc',
clientId: 'your-client-id',
redirectUri: window.location.origin + '/callback',
// Use offline_access to request a refresh token from Fabrixly IDS
scope: 'openid profile email offline_access',
responseType: 'code',
useSilentRefresh: true,
// Fabrixly IDS UserInfo endpoint is /oidc/me
userinfoEndpoint: 'https://ids.fabrixly.com/oidc/me', // Cloud
// userinfoEndpoint: 'https://auth.yourdomain.com/oidc/me', // Self-hosted
};
🔗 npmjs.com/package/angular-oauth2-oidc
Vue.js
vue-oidc-client
OIDC client for Vue 3 apps, built on top of oidc-client-ts.
npm install vue-oidc-client oidc-client-ts
🔗 npmjs.com/package/vue-oidc-client
Java / Spring Boot
Spring Security OAuth2 Resource Server
Built-in Spring Boot support for validating Fabrixly IDS JWTs using the JWKS endpoint.
<!-- pom.xml -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>
# application.yml
spring:
security:
oauth2:
resourceserver:
jwt:
# For Cloud SaaS
issuer-uri: https://ids.fabrixly.com/oidc
jwk-set-uri: https://ids.fabrixly.com/oidc/.well-known/jwks.json
# For Self-hosted
# issuer-uri: https://auth.yourdomain.com/oidc
# jwk-set-uri: https://auth.yourdomain.com/oidc/.well-known/jwks.json
🔗 docs.spring.io/spring-security/oauth2
Nimbus OAuth 2.0 SDK (Java)
Low-level Java library for full OAuth 2.0 and OIDC protocol implementation.
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>oauth2-oidc-sdk</artifactId>
<version>11.x</version>
</dependency>
🔗 connect2id.com/products/nimbus-oauth-2.0-sdk
.NET / C#
Microsoft.AspNetCore.Authentication.OpenIdConnect
Built-in .NET middleware for OIDC. Works directly with Fabrixly IDS discovery document.
dotnet add package Microsoft.AspNetCore.Authentication.OpenIdConnect
builder.Services.AddAuthentication().AddOpenIdConnect("fabrixly-ids", options => {
// For Cloud SaaS
options.Authority = "https://ids.fabrixly.com/oidc";
// For Self-hosted
// options.Authority = "https://auth.yourdomain.com/oidc";
options.ClientId = "your-client-id";
options.ClientSecret = "your-client-secret";
options.ResponseType = "code";
options.Scope.Add("openid");
options.Scope.Add("profile");
});
🔗 learn.microsoft.com/aspnet/openidconnect
IdentityModel.OidcClient (.NET)
A certified OIDC client library for native and mobile .NET apps.
dotnet add package IdentityModel.OidcClient
🔗 identitymodel.readthedocs.io
Python
Authlib
The most complete OAuth 2.0 and OIDC library for Python — works with Flask, Django, FastAPI, and plain Python.
pip install authlib
from authlib.integrations.requests_client import OAuth2Session
client = OAuth2Session(
client_id='your-client-id',
client_secret='your-client-secret',
scope='openid profile email'
)
# Authorization Code flow
# For Cloud SaaS
uri, state = client.create_authorization_url('https://ids.fabrixly.com/oidc/authorize')
# For Self-hosted
# uri, state = client.create_authorization_url('https://auth.yourdomain.com/oidc/authorize')
python-jose / PyJWT
For verifying Fabrixly IDS JWTs server-side using the JWKS endpoint.
pip install python-jose[cryptography]
# or
pip install PyJWT[crypto]
Go
go-oidc + oauth2
The standard Go OIDC library by CoreOS — used with the golang.org/x/oauth2 package.
go get github.com/coreos/go-oidc/v3/oidc
go get golang.org/x/oauth2
// For Cloud SaaS
provider, err := oidc.NewProvider(ctx, "https://ids.fabrixly.com/oidc")
// For Self-hosted
// provider, err := oidc.NewProvider(ctx, "https://auth.yourdomain.com/oidc")
oauth2Config := oauth2.Config{
ClientID: "your-client-id",
ClientSecret: "your-client-secret",
RedirectURL: "https://app.yourdomain.com/callback",
Endpoint: provider.Endpoint(),
Scopes: []string{oidc.ScopeOpenID, "profile", "email"},
}
🔗 pkg.go.dev/github.com/coreos/go-oidc
iOS / Swift
AppAuth-iOS
Google's official OIDC/OAuth 2.0 client library for iOS and macOS. Handles PKCE, token storage, and refresh.
// Package.swift
.package(url: "https://github.com/openid/AppAuth-iOS.git", from: "1.7.0")
// Use auto-discovery — Fabrixly IDS discovery is at /oidc/.well-known/openid-configuration
// For Cloud SaaS
let issuer = URL(string: "https://ids.fabrixly.com/oidc")!
// For Self-hosted
// let issuer = URL(string: "https://auth.yourdomain.com/oidc")!
OIDAuthorizationService.discoverConfiguration(forIssuer: issuer) { config, error in
guard let config = config else { return }
// config.authorizationEndpoint → https://ids.fabrixly.com/oidc/auth (cloud) or https://auth.yourdomain.com/oidc/auth (self-hosted)
// config.tokenEndpoint → https://ids.fabrixly.com/oidc/token (cloud) or https://auth.yourdomain.com/oidc/token (self-hosted)
// config.userinfoEndpoint → https://ids.fabrixly.com/oidc/me (cloud) or https://auth.yourdomain.com/oidc/me (self-hosted)
}
// Or configure manually with Fabrixly IDS endpoints:
let config = OIDServiceConfiguration(
// For Cloud SaaS
authorizationEndpoint: URL(string: "https://ids.fabrixly.com/oidc/auth")!,
tokenEndpoint: URL(string: "https://ids.fabrixly.com/oidc/token")!
// For Self-hosted
// authorizationEndpoint: URL(string: "https://auth.yourdomain.com/oidc/auth")!,
// tokenEndpoint: URL(string: "https://auth.yourdomain.com/oidc/token")!
)
🔗 github.com/openid/AppAuth-iOS
Android / Kotlin
AppAuth-Android
The Android counterpart to AppAuth-iOS. Supports Authorization Code + PKCE and secure token storage.
implementation 'net.openid:appauth:0.11.1'
// Use Fabrixly IDS discovery endpoint
// For Cloud SaaS
val issuerUri = Uri.parse("https://ids.fabrixly.com/oidc")
// For Self-hosted
// val issuerUri = Uri.parse("https://auth.yourdomain.com/oidc")
AuthorizationServiceConfiguration.fetchFromIssuer(issuerUri) { config, ex ->
// config.authorizationEndpoint → https://ids.fabrixly.com/oidc/auth (cloud) or https://auth.yourdomain.com/oidc/auth (self-hosted)
// config.tokenEndpoint → https://ids.fabrixly.com/oidc/token (cloud) or https://auth.yourdomain.com/oidc/token (self-hosted)
}
// Or manually:
val config = AuthorizationServiceConfiguration(
// For Cloud SaaS
Uri.parse("https://ids.fabrixly.com/oidc/auth"), // authorization
Uri.parse("https://ids.fabrixly.com/oidc/token") // token
// For Self-hosted
// Uri.parse("https://auth.yourdomain.com/oidc/auth"), // authorization
// Uri.parse("https://auth.yourdomain.com/oidc/token") // token
)
🔗 github.com/openid/AppAuth-Android