
Authentication SDK
Multiple authentication methods in one unified SDK. Give your users the flexibility to login their way.
Passkey & Biometric
Passwordless authentication with Face ID, Touch ID, or device security
Magic Code
One-time code sent directly to email for quick access
Social Login
Connect with Google, Facebook, Apple, or many other providers.
Don't have an account?
User Profile Management
Complete profile management with personal information, preferences, and connected accounts.
Complete Profile
Manage personal information, preferences, and account settings
Custom Attributes
Add custom fields like bio, location, or any other user data
Real-time Updates
Profile changes sync instantly across all connected devices
Full Name
Email Address
Phone Number
Bio (Custom Attribute)
Tickets & Subscriptions
View and manage your event tickets, memberships, and active subscriptions.
import {
useSession,
usePagination,
useTicketables,
} from '@unidy.io/sdk-react';
// Tickets
const { isAuthenticated } = useSession();
const pagination = usePagination({ perPage: 10 });
const { items, isLoading, getExportLink } = useTicketables({
type: 'ticket',
pagination,
filter: { orderBy: 'starts_at', orderDirection: 'desc' },
fetchOnMount: isAuthenticated,
});
// Download ticket as PDF
const link = await getExportLink(ticket.id, 'pdf');
window.open(link.url, '_blank');
// Subscriptions
const { items: subscriptions } = useTicketables({
type: 'subscription',
pagination,
fetchOnMount: isAuthenticated,
});FC Unidy vs Unidy United
Ticket ID: TKT-001
$65
Date & Time
15/01/2025
20:00
Venue
Unidy Stadium
North Stand - Block A
Seat
Row 12, Seat 45
FC Unidy vs Unidy United
Ticket ID: TKT-001
$65
Date & Time
15/01/2025
20:00
Venue
Unidy Stadium
North Stand - Block A
Seat
Row 12, Seat 45
import { useLogin } from '@unidy.io/sdk-react'; function LoginForm() { const login = useLogin(); // Multi-step state machine // login.step: "email" | "verification" | "password" // | "magic-code" | "reset-password" | "authenticated" const handleSubmit = async () => { await login.submitEmail(email); // SDK returns loginOptions: { password, magic_link, social_logins } }; return ( <form onSubmit={handleSubmit}> <input value={email} disabled={login.isLoading} /> <button type="submit">Continue</button> </form> ); }