Installation & Setup

Install and configure the Neuctra Authix SDK. You must provide appName, baseUrl, apiKey, and appId.

Install SDK

1npm install @neuctra/authix

Environment Variables

Store credentials securely in environment variables. Never hardcode API keys.

Bash
1# .env
2#
3# VITE_ variables are compiled into your bundle and are public.
4# Only a publishable key belongs here.
5
6VITE_AUTHIX_PUBLISHABLE_KEY=pk_live_xxxxxxxx_xxxxxxxxxxxxxxxx
7VITE_AUTHIX_APP_ID=your_app_id_here

Initialize SDK

Create a single reusable instance for your application.

Typescript
1import { NeuctraAuthix } from "@neuctra/authix";
2
3export const authix = new NeuctraAuthix({
4  appName: "MyApp",
5  baseUrl: "https://server.authix.neuctra.com/api",
6  publishableKey: import.meta.env.VITE_AUTHIX_PUBLISHABLE_KEY,
7  appId: import.meta.env.VITE_AUTHIX_APP_ID,
8});

Next.js Setup

Use client-side only for session-based operations. SSR will not have access to cookies.

Typescript
1// lib/authix.ts — client instance
2import { NeuctraAuthix } from "@neuctra/authix";
3
4export const authix = new NeuctraAuthix({
5  appName: "MyApp",
6  baseUrl: process.env.NEXT_PUBLIC_AUTHIX_BASE_URL!,
7  publishableKey: process.env.NEXT_PUBLIC_AUTHIX_PUBLISHABLE_KEY!,
8  appId: process.env.NEXT_PUBLIC_AUTHIX_APP_ID!,
9});
10
11
12// lib/authix.server.ts — server instance, for privileged calls only
13import "server-only";
14import { NeuctraAuthix } from "@neuctra/authix";
15
16export const authixAdmin = new NeuctraAuthix({
17  baseUrl: process.env.NEXT_PUBLIC_AUTHIX_BASE_URL!,
18
19  // No NEXT_PUBLIC_ prefix — this must never reach the browser.
20  secretKey: process.env.AUTHIX_SECRET_KEY!,
21  appId: process.env.NEXT_PUBLIC_AUTHIX_APP_ID!,
22});

Quick Start

Typescript
1export const signup = (name, email, password) =>
2  authix.signupUser({ name, email, password });
3
4export const login = (email, password) =>
5  authix.loginUser({ email, password });
6
7export const checkSession = () =>
8  authix.checkUserSession();

Error Handling

SDK errors include message and optional status.

Typescript
1try {
2  await authix.loginUser({ email, password });
3} catch (err) {
4  console.error(err?.message, err?.status);
5}

Production Notes

  • Auth routes use HTTP-only cookies (ensure proper CORS setup).
  • User/App data routes use API key authentication only.
  • Never expose API keys in public frontend logic for admin-level operations.
  • Validate inputs before calling SDK methods.

Next Steps

  • Authentication: signupUser, loginUser
  • Sessions: checkUserSession
  • User APIs: getUser, updateUser
  • Data APIs: addUserData, addAppData