# Login Credentials

> Email and password login form validation with optional rememberMe.

- Name: `login-credentials`
- Categories: auth
- Detail page: https://open-types.dev/types/login-credentials

## Install

```bash
# Types only
npx shadcn add @open-types/login-credentials

# Types + Zod v4 validators
npx shadcn add @open-types/login-credentials-zod

# Types + real-world examples
npx shadcn add @open-types/login-credentials-examples
```

## Types

```typescript
export interface LoginCredentials {
  email: string;
  password: string;
  rememberMe?: boolean;
}
```

## Zod validator

```typescript
import * as z from "zod";
import type { LoginCredentials } from "../types/login-credentials";

export const loginCredentialsSchema = z.object({
  email: z.email({ error: "Invalid email address" }),
  password: z
    .string()
    .min(8, { error: "Password must be at least 8 characters" }),
  rememberMe: z.boolean().default(false),
}) satisfies z.ZodType<LoginCredentials>;

export type { LoginCredentials } from "../types/login-credentials";
```

## Examples

```typescript
// Source: hand-crafted
import type { LoginCredentials } from "../types/login-credentials";

export const loginCredentialsExamples = {
  basic: {
    email: "jenny@example.com",
    password: "correct-horse-battery-staple",
  } satisfies LoginCredentials,
  rememberMe: {
    email: "alex@example.com",
    password: "P@ssw0rd-1234-secure",
    rememberMe: true,
  } satisfies LoginCredentials,
  sessionOnly: {
    email: "sam@example.com",
    password: "another-good-passphrase-99",
    rememberMe: false,
  } satisfies LoginCredentials,
} as const;
```
