Skip to main content

Auth Provider

Redirect-based authentication using Taruvi's Web UI Flow.

Setup

<Refine authProvider={authProvider(client)} />

Flow

  1. login() → redirects to backend /accounts/login/
  2. User authenticates on backend
  3. Backend redirects back with tokens in URL hash
  4. Client extracts and stores tokens automatically

Login

const { mutate: login, isLoading } = useLogin();
login({ callbackUrl: "/dashboard" });
// Redirects to backend login page; no direct return value

Logout

const { mutate: logout, isLoading } = useLogout();
logout({ callbackUrl: "/login" });

Register

const { mutate: register, isLoading } = useRegister();
register({ callbackUrl: "/welcome" });

Get Current User

import type { TaruviUser } from "@taruvi/sdk";

const { data: user, isLoading, isError } = useGetIdentity<TaruviUser>();
// user.username, user.email, user.first_name, user.last_name, etc.

Get Permissions

const { data: permissions, isLoading } = usePermissions();
// permissions.roles, permissions.permissions, permissions.groups
// permissions.is_staff, permissions.is_superuser

Auth Check Behavior

  • check() verifies authentication and auto-refreshes expired tokens
  • onError() handles 401 (attempts token refresh, then logout) and 403 (no logout, user is authenticated but unauthorized)

Parameter Types

import type { LoginParams, LogoutParams, RegisterParams } from "@taruvi/refine-providers";

// LoginParams: { callbackUrl?: string; username?: string; password?: string; redirect?: boolean }
// LogoutParams: { callbackUrl?: string }
// RegisterParams: { callbackUrl?: string }