@customyai/client
v0.4.0
Published
Customy browser client: session, sign-in, MFA, passkeys, active organization, capabilities and account linking over same-origin HttpOnly cookies, with React, native and native React bindings as subpaths. Never takes server secrets.
Downloads
396
Maintainers
Readme
@customyai/client
Cliente de navegador de Customy: sesión, login (email, social, magic link, passkeys, MFA), organización activa, capabilities y vinculación de cuentas. Todo va contra /api/auth/* y /api/* del mismo origen —la app los reenvía a Customy Access con @customyai/web— con cookies HttpOnly: el cliente nunca lee cookies ni guarda tokens, y rechaza secretos de servidor.
npm install @customyai/client.:createCustomyClient({ publishableKey, environmentId })—getSession()(signedIn·signedOut·unknown: un fallo transitorio nunca cierra la sesión),signInWithEmail,signUp,socialSignInUrl,signOut,capabilities.*,accountLinking.*,realtimeTicket().- Errores de login:
signInWithEmail,signUp,signInWithMagicLink,verifyMFA… devuelven{ error, status, code, retryable }:errores el texto de siempre;status401/403 son credenciales o cuenta,429/5xx/502servicio caído (retryable: true),408/SDK_TIMEOUTplazo y0/SDK_NETWORK_ERRORsin red;codees el del sobre de Access (INVALID_EMAIL_OR_PASSWORD…) oHTTP_<estado>. Lee{ error: { code, message } }y el formato plano. - Organización: el slug de
organizationSlugviaja enx-organization-slugy, durante la transición, también enx-organization-id. - Enlace mágico:
signInWithMagicLinkusa/api/auth/sign-in/magic-link(la ruta de Access);@customyai/websigue aceptando la viejamagic-link/send. ./react:CustomyProvider,useAuth,useSession,useUser,useOrganization, hooks y puertas de capabilities, formularios y componentes de cuenta../native: login para apps nativas (OAuth 2.1 con PKCE, navegador del sistema, refresh token en el almacenamiento seguro del dispositivo); almacenamiento, navegador y cripto son adaptadores de la app../native/react:CustomyNativeAuthProvideryuseCustomyNativeAuth.
import { CustomyProvider, useAuth } from "@customyai/client/react";
export function App({ children }: { children: React.ReactNode }) {
return <CustomyProvider publishableKey="pk_live_...">{children}</CustomyProvider>;
}